レールのあるビューで同じクラスの複数のインスタンスを使用しようとしています。基本的に、すべての属性を含むBranchを表示する必要があり、同じページに空のBranchオブジェクトを必要とするform_forがあります。問題は、コントローラー「@newBranch」で空のブランチインスタンスを作成すると、ビューが最初のインスタンスにアクセスできなくなることです。
ここで私がコントローラーで行うこと:
def show
@customer = Customer.find(params[:id])
@branches = @customer.branches
@newBranch = @customer.branches.new #this is for the form_for
@newContact = @newBranch.build_contact #this is for the fields_for
end
たとえば、コレクション@branchesの単一のアイテムを使用しようとすると、次のようになります。
<div class = "branch_container">
<%= render :partial => "customers/branch", :collection => @branches %>
</div>
そして、部分的なブランチの内部:
<%= branch.contact.name %>
私はメッセージを持っています:
「nil:NilClassの未定義のメソッド`name'」
すべてのモデルの関連付けは正常に機能し、@ newBranchと@newContactをインスタンス化しないと、問題は解消されます。
基本的に、同じビューで同じクラスの2つのインスタンス(たとえば、ある部分では「@branches」、別の部分では「@newBranch」)を使用する必要があります。
解決策は何でしょうか?ありがとうございました。