3

私は2つのモデルを持っています:

class Calendar < ActiveRecord::Base
  has_many :events
end

class Event < ActiveRecord::Base
  belongs_to :calendar
end

ネストされたイベントを含むすべてのカレンダーを json として出力する必要があり、次のように実行できます。

Calendar.all.to_json(:include => :events)

ただし、次のようにイベントをフィルター処理する必要もあります。

where(:name => 'bla')

どうすればいいですか?これまでのところ、私の解決策は、各カレンダーを手動でハッシュに変換し、イベントをフィルタリングしてハッシュに変換し、イベントをカレンダー ハッシュに追加し、最後に to_json に変換することです。しかし、もっと良いアプローチがあることを願っています。

4

1 に答える 1

5

私はこれがうまくいくと思います:

Calendar.includes(:events).where('events.name' => 'bla').to_json(:include => :events)
于 2012-09-28T04:37:14.197 に答える