2011-08-10 25 views
8

まだネストされたフォームに問題があります。ここに私のフォームのコードは次のとおりです。二重ネストされたモデルフォーム

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

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

    <%= f.fields_for :organizations do |builder| %> 
     <%= builder.label :name %><br /> 
     <%= builder.text_field :name %><br /> 
     <%= builder.label :website %><br /> 
     <%= builder.text_field :website %><br /> 

     <%= f.fields_for :locations do |builder| %> 
      <%= builder.label :phone %><br /> 
      <%= builder.text_field :phone %><br /> 
      <%= builder.label :toll_free_phone %><br /> 
      <%= builder.text_field :toll_free_phone %><br /> 
      <%= builder.label :fax %><br /> 
      <%= builder.text_field :fax %><br /> 
     <% end %> 
    <% end %> 

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

アカウントモデル:

class Account < ActiveRecord::Base 

has_many :organizations 

accepts_nested_attributes_for :organizations 
end 

組織モデル:

class Organization < ActiveRecord::Base 

belongs_to :account 

has_many :locations 

accepts_nested_attributes_for :locations 
end 

と場所モデル:

class Location < ActiveRecord::Base 

belongs_to :organization 

end 

そして最後に、口座管理者:

ここで
class AccountsController < ApplicationController 

def new 
    @account = Account.new 
    organization = @account.organizations.build 
    organization.locations.build 

    @header = "Create account" 
end 

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

は、私が取得していますエラーです:

ActiveRecord::UnknownAttributeError in AccountsController#create 

unknown attribute: locations 
Rails.root: C:/Documents and Settings/Corey Quillen/My  
Documents/rails_projects/shop_manager 

Application Trace | Framework Trace | Full Trace 
app/controllers/accounts_controller.rb:12:in `new' 
app/controllers/accounts_controller.rb:12:in `create' 
Request 

Parameters: 

{"utf8"=>"✓", 
"authenticity_token"=>"xuZLSP+PSjdra3v51nIkJYZeXRM0X88iF135hPlp4sc=", 
"account"=>{"account_type"=>"Company", 
"organizations_attributes"=>{"0"=>{"name"=>"Atlas", 
"website"=>"www.atlas.com"}}, 
"locations"=>{"phone"=>"555-555-5555", 
"toll_free_phone"=>"800-555-5555", 
"fax"=>"512-555-5555"}}, 
"commit"=>"Add account"} 

これですべてのヘルプは大歓迎されます。私は今これを数時間見てきました。

答えて

13

あなたは):)ネストされた、ネストされた形のために、ネストされた形で新しいビルダーを使用する必要があります。

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

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

    <%= f.fields_for :organizations do |builder| %> 
     <%= builder.label :name %><br /> 
     <%= builder.text_field :name %><br /> 
     <%= builder.label :website %><br /> 
     <%= builder.text_field :website %><br /> 

     <%= builder.fields_for :locations do |lb| %> 
      <%= lb.label :phone %><br /> 
      <%= lb.text_field :phone %><br /> 
      <%= lb.label :toll_free_phone %><br /> 
      <%= lb.text_field :toll_free_phone %><br /> 
      <%= lb.label :fax %><br /> 
      <%= lb.text_field :fax %><br /> 
     <% end %> 
    <% end %> 

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

働いていました!ご協力いただきありがとうございます。 –

1

さえドライヤーソリューション:

1)あなたのGemfileで、リストnested_form依存関係などを。アカウントの形で

class Account < ActiveRecord::Base 
    accepts_nested_attributes_for :organizations 
end 

class Organization < ActiveRecord::Base 
    accepts_nested_attributes_for :locations 
end 

3)./app/view/organizations/ and for Location under下の組織のための定期的なフォームを作成/アプリ/ビュー/場所/ `

4)、これを行う:あなたのモデルで

2)これをください。 :(!それはこの方法をかなり短くなります)

<%= nested_form_for @account do |f| %> 

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

<%= f.fields_for :organizations %> 

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

5)あなたの組織の形で、次の操作を行います(もかなり短い)

<%= nested_form_for @organization do |f| %> 
<%= f.label :name %><br /> 
    <%= f.text_field :name %><br /> 
    <%= f.label :website %><br /> 
    <%= f.text_field :website %><br /> 

    <%= f.fields_for :locations %> 

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

これらRailsCastsチェック:

http://railscasts.com/episodes/196-nested-model-form-part-1

http://railscasts.com/episodes/197-nested-model-form-part-2

関連する問題