我有两种模式:
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。但我希望有一个更好的方法。
答案 0 :(得分:5)
我认为这应该有效:
Calendar.includes(:events).where('events.name' => 'bla').to_json(:include => :events)