免责声明:我使用的是 Rails 3.2。具体来说,在 Rails 3 in Action 一书中:
用户模型确实有 attr_accessible attr_accessible :email, :password, password_confirmation, :remember_me
User 模型没有 :admin 列出,因此它不能作为 params[:user] 的一部分批量分配。
app/views/admin/users/_form.html.erb 中的 form_for 块设置了一个复选框元素以允许管理员将用户设置为管理员:
` <%= 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 属性更改为 true。
我可以将 admin 属性设置为 true 而无需通过控制台进行批量分配,同时在 User 模型中定义一个方法:
def make_admin
self.admin = true
end
这完成了同样的事情,没什么特别的。
如何获取分配给 TRUE 的管理属性,以便用户通过复选框使用视图和控制器工作?
有没有办法从 params[:user][:admin]) 中删除或分离 admin 参数?