私はクラスがサーバーに投稿されても保存されないという問題があります。その理由を理解することはできませんし、この問題についていくつかの助けに感謝します。accepts_nested_attributes_forを動作させるには、ビュー内のポリモーフィックアドレスのフィールドを保持する必要がありますか?
まず、私の勘定科目クラスを取ると、住所への参照があり、請求先住所と配送先住所の両方が定義されます。
class Account < ActiveRecord::Base
has_many :addresses, :as => :addressable, :dependent => :destroy
has_one :billing_address, :as => :addressable
has_one :delivery_address, :as => :addressable
accepts_nested_attributes_for :billing_address,
:allow_destroy => true,
:reject_if => missing_attrs?('street_one', 'zip', 'city', 'country_id')
accepts_nested_attributes_for :delivery_address,
:allow_destroy => true,
:reject_if => missing_attrs?('street_one', 'zip', 'city', 'country_id')
end
今私のアドレスクラスがどのように見えるが、その後、私は次のような形式でのビューを持っていると私はそれがブラウザで完璧に見えるんと言わなければならない
class Address < ActiveRecord::Base
belongs_to :country
belongs_to :addressable, :polymorphic => true
validates_inclusion_of :type, :in => %w(BillingAddress DeliveryAddress), :message => "Please speficy either billing or delivery address"
attr_accessor :street_one, :street_two, :zip, :city, :country_id, :region
end
class BillingAddress < Address
end
class DeliveryAddress < Address
end
を次の、すべてのフィールドは名前があると配列elelmentsとallとは一致しています。
=semantic_form_for [:admin,@account] do |f|
= render 'shared/errors', :target => @account
=f.inputs
=f.semantic_fields_for :billing_address do |address|
=address.inputs name:"Billing Address" do
=address.input :street_one
=address.input :street_two
=address.input :city
=address.input :zip
=address.input :region
=address.input :country
=f.semantic_fields_for :delivery_address do |address|
=address.inputs name:"Delivery Address" do
=address.input :street_one
=address.input :street_two
=address.input :city
=address.input :zip
=address.input :region
=address.input :country
=f.semantic_fields_for :users do |user|
=user.inputs name:"Default user" do
=user.input :email
=user.input :password
=f.submit
私はraise params.to_yaml
でこれを確認した場合にアドレス指定し、タイプの多型フィールドが欠落しているものの、それは正しく見えるん。私はコントローラーでこれを構築してから、更新前と作成前にコントローラーに戻す前にそれらを表示しておく必要があると思います。私はthis postを読んでいますが、正確に何をしているのか分かりません。
私はあなたの最善の提案をしてもらえますか?