#101 マイグレとコントローラ

This commit is contained in:
2025-09-09 23:01:06 +09:00
parent 3119d475e5
commit c9bae764f7
3 changed files with 18 additions and 7 deletions
+9 -6
View File
@@ -8,8 +8,11 @@ class PostsController < ApplicationController
limit = params[:limit].presence&.to_i
cursor = params[:cursor].presence
q = filtered_posts.order(created_at: :desc)
q = q.where('posts.created_at < ?', Time.iso8601(cursor)) if cursor
created_at = ('COALESCE(posts.original_created_before - INTERVAL 1 SECOND,' +
'posts.original_created_from,' +
'posts.created_at)')
q = filtered_posts.order(Arel.sql("#{ created_at } DESC"))
q = q.where("#{ created_at } < ?", Time.iso8601(cursor)) if cursor
posts = limit ? q.limit(limit + 1) : q
@@ -20,14 +23,14 @@ class PostsController < ApplicationController
end
render json: { posts: posts.map { |post|
post.as_json(include: { tags: { only: [:id, :name, :category, :post_count] } }).tap { |json|
post.as_json(include: { tags: { only: [:id, :name, :category, :post_count] } }).tap do |json|
json['thumbnail'] =
if post.thumbnail.attached?
rails_storage_proxy_url(post.thumbnail, only_path: false)
else
nil
end
}
end
}, next_cursor: }
end
@@ -39,7 +42,7 @@ class PostsController < ApplicationController
render json: (post
.as_json(include: { tags: { only: [:id, :name, :category, :post_count] } })
.merge(viewed: viewed))
.merge(viewed:))
end
# GET /posts/1
@@ -60,7 +63,7 @@ class PostsController < ApplicationController
return head :forbidden unless current_user.member?
# TODO: URL が正規のものがチェック,不正ならエラー
# TODO: title、URL は必須にする.
# TODO: URL は必須にする(タイトルは省略可)
# TODO: サイトに応じて thumbnail_base 設定
title = params[:title]
url = params[:url]