无法在has_many belongs_to关联中批量分配受保护的属性

时间:2013-08-13 12:07:49

标签: ruby-on-rails-3 ruby-on-rails-3.2

我使用的是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

正如您在模型中看到的那样。我将属性设置为可访问,但它不起作用。我甚至尝试过单数版的烹饪菜单,没有运气。我不知道出了什么问题?我宁愿不篡改导轨默认值以防止质量分配。有线索吗?

1 个答案:

答案 0 :(得分:3)

Cuisine没有cuisine_idsRestaurant没有。

attr_accessible :cuisine_ids移至Restaurant模型。