深くネストされた形式で fields_for オブジェクトの関連付けのメソッドにアクセスするのが困難です。私が間違っているところを理解するのを手伝ってもらえますか?
機会モデル:
class Opportunity < ActiveRecord::Base
has_many :seedlings
accepts_nested_attributes_for :seedlings
end
苗モデル:
class Seedling < ActiveRecord::Base
belongs_to :opportunity
belongs_to :potential_building
accepts_nested_attributes_for :potential_building
end
潜在的な建物モデル:
class PotentialBuilding < ActiveRecord::Base
has_many :seedlings
end
hidden_field の横に potential_building の名前を書きたいと思っていましたが、明らかに何かを理解していません。次のように、潜在的な建物 ID をページに書き込むことができます (haml):
...
= opportunity_form.fields_for :seedlings do |seedling_form|
= seedling_form.hidden_field :potential_building_id
= seedling_form.object.potential_building_id # => 73
....
アソシエーションのメソッドへのアクセスがこれほど簡単になることを望んでいましたが、そうでない理由がわかりません。
...
= opportunity_form.fields_for :seedlings do |seedling_form|
= seedling_form.hidden_field :potential_building_id
= seedling_form.object.potential_building.name # => undefined method `name' for nil:NilClass
...
私が理解するのを手伝ってもらえますか?ありがとうございました。