1
現在、ネストされたモデルでフォームをセットアップしています。フォームは私が販売を作成することができ、それから私は顧客と車両(別のモデル)を作成することができます。Rails 3 Nested Modelフォーム:保護された属性を割り当てることができません
車両からネストされた別のモデルである登録番号を作成しようとすると問題が発生します。基本的には、フォームにテキストボックスを表示させることができますが、登録番号を作成しようとするとコンソールにcan not mass assign protected attribute :registration_number
というエラーが発生し、登録番号の車両を含む販売を編集するとテキストボックスは空になります。関与
モデルは以下のとおりです。
class Sale < ActiveRecord::Base
attr_accessible :customer_id, :vehicle_id, :sale_date,
:customer_attributes, :vehicle_attributes
belongs_to :customer
accepts_nested_attributes_for :customer
belongs_to :vehicle
accepts_nested_attributes_for :vehicle
end
と
class Vehicle < ActiveRecord::Base
attr_accessible :first_registration_date, :hidden, :registration_numbers_attributes
has_many :sales
has_many :customers, :through => :sales
has_many :vehicle_registration_numbers, :dependent => :delete_all
has_many :registration_numbers, :through => :vehicle_registration_numbers
accepts_nested_attributes_for :registration_numbers, :allow_destroy => true
end
と
class RegistrationNumber < ActiveRecord::Base
attr_accessible :number
has_many :vehicle_registration_numbers, :dependent => :delete_all
has_many :vehicles, :through => :vehicle_registration_numbers
end
と
class VehicleRegistrationNumber < ActiveRecord::Base
belongs_to :vehicle
belongs_to :registration_number
end
問題の形式は次のとおりです。
<%= form_for @sale, :html => {:class => 'fullform'} do |f| %>
<%= field_set_tag 'Customer Details' do %>
<%= f.fields_for :customer do |builder| %>
<snip>
<% end %>
<% end %>
<%= field_set_tag 'Vehicle Details' do %>
<%= f.fields_for :vehicle do |vehicle_builder| %>
<snip>
<%= f.fields_for :registration_numbers do |registration_number_builder| %>
<%= registration_number_builder.text_field :number, :class => 'formtxtbox-short' %>
<% end %>
<% end %>
<% end %>
<% end %>
どのような援助がいただければ幸いです - ありがとう!
もう一度やってくれてありがとう! –