Railsを学習中で、APIモードで使用しています。
jsonでレスポンスを返す際に、データから必要な値を抽出して返すようにする場合の、モデルのjoinやselectをコントローラーに現在べた書きしています。以下に例を載せています。
controllers/user_controller.rb
module Api module V1 class UserController < ApplicationController def index users = User.joins(:posts).select('users.*, posts.title') render json: { users: users }, status: :ok end end end end
models/user.rb
class User < ApplicationRecord has_many :posts end
ですが、joinやselectはモデルに関することなので、コントローラーに書くのではなくモデルに書いた方が良いのではと思いました。
しかし、その場合モデルの方でjoinやselectを書く方法がわかりません。モデルでの書き方を教えてください。またこのようなjoinやselectを書く場所はモデルの方が良いのではないかと思っていますが、どちらが良いかも教えて頂けますでしょうか。よろしくお願いします。
0 コメント