2010-06-22 2 views
1

У меня проблема с некоторыми ассоциациями в Rails3.Проблема с вложенными ассоциациями в Rails3

У меня есть следующие ассоциации

InformationCategory :has_many => Informations :has_many => InformationValues 

Я могу успешно выполнить следующие действия:

Information.first.information_values 
=> [#InformationValue..] 

Я также в состоянии сделать следующее:

InformationCategory.first.informations 
=> [#Information...] 

Однако по некоторым причинам это не удается:

InformationCategory.first.informations.first.information_values 
=> NoMethodError: undefined method `information_values' for #<Information:0x000001053321c8> 

Почему я не могу использовать «вложенные ассоциации» в Rails? В сообщении об ошибке четко указано, что InformationCategory.first.informations.first возвращает экземпляр Information

Я что-то не так?

Заранее благодарен!

+0

Кстати, если я проверяю Информационный объект в случае его отказа, он показывает, что ни один из методов ассоциации «магия» не добавляется к объекту. – Mattias

+0

Не могли бы вы вывести код с ваших моделей? –

ответ

0

Вы не определяете всех вложенных потомков по внешней модели: каждая модель определяет, что это «непосредственно» has_many, или модель, которой она принадлежит. Поскольку ваш вопрос неправильный, я могу только догадываться, не видя более конкретно, как ваши модели должны быть связаны.

Это может быть началом:

class InformationCategory < ActiveRecord::Base 
    has_many :informations 
end 

class Information < ActiveRecord::Base 
    belongs_to :information_category 
    has_many :information_values 
end 

class InformationValue < ActiveRecord::Base 
    belongs_to :information 
end 

Однако, вы, возможно, пытается сделать has_many :through, но я не могу сказать, из вашего вопроса.

Смежные вопросы