我可能遗漏了一些简单的东西,但是我通过迁移向我的用户添加了一个管理布尔值并运行了rake db:migrate。我将:admin添加到user.rb文件中。当我进入控制台并键入User.find(1).admin它返回nil,但如果我只是调用User.find(1)它不会在属性中列出admin。
如果我跑 u = User.find(1) u.admin = true u.save
它显示为true,但是如果我运行User.find(1).admin再次显示nil并且当我只调用User.find(1)时仍然不会显示
我的架构显示t.boolean“admin”
我正在使用Devise,这可能是问题的一部分。我在这里错过了什么吗?我想也许这是一个糟糕的迁移,但如果我尝试在控制台中设置管理员,我会收到错误。
答案 0 :(得分:0)
我自己想通了。 Devise已将属性从用户模型移动到应用程序控制器。我需要添加:admin这样:
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :firstname
devise_parameter_sanitizer.for(:sign_up) << :lastname
devise_parameter_sanitizer.for(:sign_up) << :admin
devise_parameter_sanitizer.for(:account_update) << :firstname
devise_parameter_sanitizer.for(:account_update) << :lastname
devise_parameter_sanitizer.for(:account_update) << :admin
end