这些是我的协会:
class Activity < ActiveRecord::Base
has_many :infos, :dependent => :destroy
has_many :events, :dependent => :destroy
accepts_nested_attributes_for :infos
end
class Event < ActiveRecord::Base
belongs_to :activity
has_many :infos, :through => :activity
end
class Info < ActiveRecord::Base
has_one :language
belongs_to :activity
end
现在我可以使用以下命令获取包含所有事件及其信息的XML:
@events = Event.all
respond_to do |format|
format.xml { render :xml => @events.to_xml(:include => [:infos ]) }
end
问题是我从所有语言中获得了信息。
是否可以使用过滤器(如“where info.language.id == 1”),以便每个事件只在XML中显示language1信息?
由于
更新:
嗨,迈克,谢谢你的回答。
不幸的是我收到了这个错误:
nil的未定义方法`eq':NilClass Rails.root:/ Users / abramo / village
应用程序跟踪|框架跟踪| 完整追踪 应用程序/控制器/ events_controller.rb:29:在
block (2 levels) in locale' app/controllers/events_controller.rb:28:in
的区域设置'
和第28,29行是我的语言环境方法的最后一行:
def locale
@events = Event.joins(:infos => :language).where("languages.id = 2")
respond_to do |format|
format.xml { render :xml => @events.to_xml(:include => [:infos ]) }
end
end
我真的不明白...... Nil是什么对象?
答案 0 :(得分:1)
Event.joins(:infos => :language).where("languages.id = 1")