Rails 4 - 带有has_many和accepts_nested_attributes_for的ActiveModel :: ForbiddenAttributesError

时间:2016-04-13 16:55:29

标签: ruby-on-rails ruby-on-rails-4 has-many

我遇到Zone ..

的问题

这是我的class Zone < ActiveRecord::Base has_many :zones_users, inverse_of: :zone, dependent: :delete_all has_many :users, through: :zones_users accepts_nested_attributes_for :zones_users, :update_only => true, :allow_destroy => true end 型号

ZonesUser

User模型与class ZonesUser < ActiveRecord::Base belongs_to :zone belongs_to :user end 模型的多对多关联

ZonesController

现在在ZonesUser我允许def zone_params params.require(:zone) .permit(:id, :name, :description, :image, zones_users_attributes: [:user_id, :zone_id, :is_admin]) end 关联的属性和嵌套属性如下

Zone

这样我就可以一次更新def update @zone = Zone.find_by_id(zone_params[:id]) @zone.update(zone_params) end 的数据和关联

ActiveModel::ForbiddenAttributesError

但是这给了我错误ActiveModel::ForbiddenAttributesError - ActiveModel::ForbiddenAttributesError: activemodel (4.2.4) lib/active_model/forbidden_attributes_protection.rb:21:in `sanitize_for_mass_assignment' activerecord (4.2.4) lib/active_record/attribute_assignment.rb:33:in `assign_attributes' activerecord (4.2.4) lib/active_record/core.rb:564:in `init_attributes' activerecord (4.2.4) lib/active_record/core.rb:281:in `initialize' activerecord (4.2.4) lib/active_record/inheritance.rb:61:in `new' activerecord (4.2.4) lib/active_record/reflection.rb:131:in `build_association' activerecord (4.2.4) lib/active_record/associations/association.rb:250:in `build_record'

,错误如下:

attr_accessible

我正在使用rails 4,并且已经读过public static void main(String[] args) { int[] itemSet; itemSet = new int[5]; int assignItem; for (int i = 0; i < 5; i++) { assignItem = (int)(Math.random()*76); if(!duplicate(assignItem,itemSet,i)){ itemSet[i] = assignItem; } } } private static boolean duplicate(int assignItem, int[] itemSet, int i) { for (int j = 0; j < i; j++) { if (assignItem == itemSet[j]) return true; } return false; } 不再用于允许访问嵌套模型/关联,并且我应该允许控制器级别的属性(permit zones_users_attributes部分)。我错过了什么?

0 个答案:

没有答案