0

我有点处于catch22的情况。

  1. 如果必须保护用户的“角色”属性免受批量分配问题的影响,我必须使用 attr_accessible 并排除它。
  2. 但是,如果我必须允许管理员设置它,那么我必须使用 assign_attributes 添加 :as => :admin。
  3. 但是如果我必须设置一些默认角色,那么 db:seed 将不起作用。

有没有办法满足这三个需求?

谢谢你。

4

1 回答 1

0

批量分配有几种方法,但我并不是它们的粉丝。

例如:

role = Role.new
role.assign_attributes({...}, :without_protection => true)
role.save

我更喜欢使用我编写的名为sudo_attributes的 gem ,它为您提供“sudo”权限:

Role.sudo_create(...)

该 API 与 ActiveRecord 的用于创建和实例化模型的 API 相同。

于 2012-07-18T01:51:12.670 回答