Rails为管理员用户进行大量分配

Dam*_*che 3 ruby-on-rails-3

我正在使用rolify来管理用户角色,当我尝试通过用户表单更新角色时,我会收到:

can't mass-assign protected attributes: role_ids
Run Code Online (Sandbox Code Playgroud)

这很令人欣慰,但我想知道,如何允许管理员通过批量分配更新用户角色但不允许普通用户?

Rya*_*igg 5

您可以attr_accessibleUser模型中使用其他列表:

attr_accessible :name
attr_accessible :name, :role_ids, :as => :admin
Run Code Online (Sandbox Code Playgroud)

然后在管理员控制器的内部createupdate操作中:

User.create(params[:user], :as => :admin)

user.update_attributes(params[:user], :as => :admin)
Run Code Online (Sandbox Code Playgroud)