免责声明:我使用的是 Rails 3.2。具体来说,在《Rails 3 in Action》一书中:
用户模型确实有 attr_accessible attr_accessible :email、:password、password_confirmation、:remember_me
用户模型没有列出 :admin,因此不能将其作为 params[:user] 的一部分进行批量分配。
app/views/admin/users/_form.html.erb 中的 form_for block 设置了一个复选框元素 允许管理员将用户设置为管理员:
` <%= f.check_box :admin %> <%= f.label :admin, "是管理员吗?"%>
app/controllers/admin/users_controller.rb
@user = User.new(params[:user])
@user.admin = params[:user][:admin] == "1"
if @user.save
行 @user.admin = params[:user][:admin] == "1"应该将 admin 属性设置为 true,但会生成批量分配错误,这会阻止我将 @user.admin 属性更改为真的。
我可以将 admin 属性设置为 true,而无需通过控制台进行批量分配,并在用户模型中定义方法:
def make_admin
self.admin = true
end
这完成了同样的事情,没什么花哨的。
如何将管理属性分配为 TRUE,以便用户通过复选框使用 View 和 Controller ?
有没有办法从 params[:user][:admin]) 中删除或分离 admin 参数?
最佳答案
注释掉development.rb 文件中的config.active_record.mass_assignment_sanitizer = :strict
行让我前进。
关于ruby-on-rails-3 - Rails 3.2 是否有涵盖向用户分配管理属性的教程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9728429/