То, что вы говорите, не имеет смысла.Ваше сообщение об ошибке - undefined method `C' for nil:NilClass
- говорит о том, что a_data.B
равно нулю, поэтому я не уверен, как может работать родительский идентификационный код a_data.B.try(:B_id)
?
Но чтобы ответить на ваш вопрос, каждыйa_data
является экземпляром класса A
, и вы пытаетесь вызвать родительский класс (B
) в случае, когда вам нужна родительская ассоциация.
Предполагая, что ваши ассоциации соответствуют заявленным вами ...
class A
belongs_to :b
end
class B
belongs_to :c
end
Чтобы получить доступ к прародителю экземпляра A
, вы должны сделать
@a_datas.each do |a_data|
events << {:id => a_data.id, :title => "#{a_data.b.try(:c_id)}" , :start => "#{a_data.start_date}",:end => "#{a_data.end_date}" }
end
ИЛИ, если вы уверены, что a_data.b
существует, вы можете сделать
@a_datas.each do |a_data|
events << {:id => a_data.id, :title => "#{a_data.b.c.try(:id)}" , :start => "#{a_data.start_date}",:end => "#{a_data.end_date}" }
end