В настоящее время я пытаюсь настроить форму с вложенными полями в отношении принадлежности_к, но сталкиваюсь с ошибкой массового назначения. Мой код пока выглядит следующим образом (некоторые html удалены):
Модель продажи:
class Sale < ActiveRecord::Base
attr_accessible :customer_attributes
belongs_to :customer
accepts_nested_attributes_for :customer
end
новый.html.erb:
<div class="container">
<%= form_for :sale, :url => sales_path do |sale| -%>
<%= sale.fields_for :customer do |customer_builder| %>
<%= render :partial => "customers/form", :locals => {:customer => customer_builder, :form_actions_visible => false} %>
<% end -%>
<% end -%>
клиенты/_form.html.erb
<fieldset>
<label class="control-label">Customer Type</label>
<%= collection_select(:customer, :customer_type_id, CustomerType.all, :id, :value, {}, {:class => "chzn-select"}) %>
</fieldset>
Я считаю, что это должно позволить мне создать объект «Продажа» и вложенный объект «Клиент». Отправляемые параметры (обратите внимание, что включены некоторые несвязанные параметры):
{"utf8"=>"✓",
"authenticity_token"=>"qCjHoU9lO8VS060dXFHak+OMoE/GkTMZckO0c5SZLUU=",
"customer"=>{"customer_type_id"=>"1"},
"sale"=>{"customer"=>{"features_attributes"=>{"feature_type_id"=>"1",
"value"=>"jimmy"}}},
"vehicle"=>{"trim_id"=>"1",
"model_year_id"=>"1"}}
Ошибка, которую я получаю:
Can't mass-assign protected attributes: customer
Я понимаю, почему это может быть так, поскольку :customer отсутствует в списке attr_accessible для продажи, хотя не должна ли форма отправлять атрибуты customer_attributes вместо клиента?
Любая помощь/совет приветствуется.
РЕДАКТИРОВАТЬ 1: Насколько я могу судить, attr_accessible в модели продажи должен быть покрыт :customer_attributes - если кто-то говорит иначе, пожалуйста, дайте мне знать.
РЕДАКТИРОВАТЬ 2: Я пробовал различные перестановки, но я не могу получить параметры для отправки customer_attributes вместо просто клиента - возможно, я пропустил тег или использовал неправильный тег где-то в формах выше?
РЕДАКТИРОВАТЬ 3: я нашел еще один вопрос на SO, который указывал на проблему с частью :url =>
в теге form_for - вопрос касался настройки формы, но мне интересно, может ли это быть причиной проблемы здесь?