3

我有两个模型:

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 回答