2011-08-09 15 views
1

簡単なネストされたモデルフォームをセットアップしようとしていますが、 '新しい'アクションでフォームを表示しようとするとエラーが発生します。ここに私のセットアップは次のとおりです。ネストされたモデルフォーム

class Account < ActiveRecord::Base 
    has_many :people 
    has_many :organizations 

    accepts_nested_attributes_for :organizations 
end 

class Organization < ActiveRecord::Base 
    belongs_to :account 

    has_many :locations 

    accepts_nested_attributes_for :people 
    accepts_nested_attributes_for :addresses 
end 

class AccountsController < ApplicationController 

    def new 
     @account = Account.new 
     @account.organizations.build 
    end 

    def create 
     @account = Account.new(params[:account]) 
     if @account.save 
      #handle success 
     else 
      render 'new' 
     end 
    end 

end 

<%= form_for(@account) do |f| %> 

<%= f.label :type %><br /> 
<%= f.text_field :type %><br /> 

    <%= f.fields_for :organization do |organization_fields| %> 
     <%= organization_fields.label :name %><br /> 
     <%= organization_fields.text_field :name %><br /> 
     <%= organization_fields.label :website %><br /> 
     <%= organization_fields.text_field :website %><br /> 
    <% end %> 

<%= f.submit "Add account" %> 
<% end %> 

アカウント/で「新しい」アクションをヒットしようとする/私は、次のエラーを取得しています新しい:

初期化されていない一定のアカウント::組織

アプリケーショントレース: app/controllers/accounts_controller.rb:5: 'new'

ご協力いただければ幸いです。

答えて

0

これは、奇妙なロードオーダーの問題のようです。 config.load_pathsなどの何かを巧妙にやっていますか?

account.rbの上部にあるrequire File.join(Rails.root, 'app/models/organization.rb')を試してみてください。これはあなたが周りにいたい解決策ではありませんが、その行で動作する場合は、問題がローダにあることがわかります。

+0

私のエラーが見つかりました。私の組織モデルでは、accepts_nested_attributes_for:locationsを追加して動作させています。愚かな間違い。ご協力いただきありがとうございます。 –

関連する問題