ネストされたフォームで問題が増えています。今回は、多型Addressモデルを使用しました。どんな助けでも大歓迎です。多相関連のネストされたモデルフォーム
<%= 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 />
<%= lb.fields_for :address do |ab| %>
<%= ab.label :address1 %><br />
<%= ab.text_field :address1 %><br />
<%= ab.label :address2 %><br />
<%= ab.text_field :address2 %><br />
<%= ab.label :city %><br />
<%= ab.text_field :city %><br />
<%= ab.label :state %><br />
<%= ab.text_field :state %><br />
<%= ab.label :zip %><br />
<%= ab.text_field :zip %><br />
<% end %>
<% 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
has_one :address, :as => :addressable
end
class Address < ActiveRecord::Base
belongs_to :addressable, :polymorphic => true
end
class AccountsController < ApplicationController
def new
@account = Account.new
organization = account.organizations.build
location = organization.locations.build
location.addresses.build
@header = "Create account"
end
def create
@account = Account.new(params[:account])
if @account.save
#handle success
else
render 'new'
end
end
end
/アカウント経由でフォームを表示しようとすると/ Iは、次のエラーメッセージを取得しています新しい:
あなたはアドレスの関連付けを定義したときlocation.addresses.build
をやっているため、問題がある
NoMethodError in AccountsController#new
undefined method `addresses' for #<Location:0x18d7718>
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:7:in `new'
Request
Parameters:
None
質問を投稿する際には、コードの個々の懸念事項を別々のタイトルブロックに分けてください。これにより、潜在的な回答者が質問を簡単に解釈できるようになります:) –