0
をクリーンアップします、私はイベントの何百万を持っていると私はトン1 + Nのクエリを見てい私はカレンダーのページが読み込ま呼び出されるGETメソッド持つN + 1のRails関係のクエリ
def get_events
@events.select {|event| event.task.present? }.each do |event|
target_contact = event.task.primary_contact
owner = event.task.task_followers.where(owner: true).first.follower
events << { id: event.id, title: event.title, contact: target_contact, owner: owner }
end
render json: events.to_json
end
をそれは個々の出来事と関係を読み込むためです。私はRailsがそのようなクエリを排除するインクルードメソッドを提供していることを知っているしかし、インクルードメソッドはシンボル引数を取るだけです:
Event.includes(:task)
そして私はincludeメソッドを使ってjson応答を構築することはできないと思います。
class Event < ActiveRecord::Base
belongs_to :task
end
class Task < ActiveRecord::Base
has_many :task_followers, dependent: :destroy
end
任意のアイデア:
ここでは関係がありますか?
を。したがって、私はまだそれぞれを呼び出さなければならないでしょう。あなたはどうしますか? – Donato
'@ events'をどこに設定しても、上記の' includes'呼び出しを追加する場所であれば、上のコードがうまくいくはずです。 –