Railsでモデル(ActiveRecord)のメソッドのjoinやselectを書く場所はどこが適切でしょうか

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 コメント