我遇到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部分)。我错过了什么?