我使用的是rails 3.2.13,我有两个实体的模型,如此
class Restaurant < ActiveRecord::Base
attr_accessible :description, :menu, :restaurant_name
has_many :cuisines
end
class Cuisine < ActiveRecord::Base
attr_accessible :cuisine_name, :restaurant_id
attr_accessible :cuisine_ids
belongs_to :restaurant
end
创建餐馆的控制器操作如下所示
我有一个使用简单形式宝石创建餐厅的表格,如此
<%= simple_form_for @restaurant do |f| %>
<%= f.input :restaurant_name %>
<%= f.input :description %>
<%= f.input :menu %>
<%= f.association :cuisines, label_method: :cuisine_name %>
<%= f.button :submit %>
<% end %>
基本上假设从简单形式帮助的一组菜肴中选择。然而,当我选择美食并尝试创建餐厅。它会带来错误。
ActiveModel::MassAssignmentSecurity::Error at /restaurants
Can't mass-assign protected attributes: cuisine_ids
正如您在模型中看到的那样。我将属性设置为可访问,但它不起作用。我甚至尝试过单数版的烹饪菜单,没有运气。我不知道出了什么问题?我宁愿不篡改导轨默认值以防止质量分配。有线索吗?
答案 0 :(得分:3)
Cuisine
没有cuisine_ids
,Restaurant
没有。
将attr_accessible :cuisine_ids
移至Restaurant
模型。