это мои ассоциации:
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
Проблема в том, что я получаю информацию со всех языков.
Можно ли использовать фильтр (например, "где info.language.id == 1"), чтобы в XML отображалось только информация language1 для каждого события?
Спасибо
ОБНОВЛЕНИЕ:
Привет, Майк, спасибо за твой ответ.
К сожалению, я получаю эту ошибку:
неопределенный метод `eq 'для nil: NilClass
Rails.root: / Пользователи / abramo / village
Трассировка приложения | Framework Trace |
Полная трассировка
приложение / контроллеры / 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
Я действительно не понимаю ... какой объект Нил?