Rails应用程序 - 管理员属性未显示给用户

时间:2014-08-22 19:29:40

标签: database ruby-on-rails-4

我可能遗漏了一些简单的东西,但是我通过迁移向我的用户添加了一个管理布尔值并运行了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,这可能是问题的一部分。我在这里错过了什么吗?我想也许这是一个糟糕的迁移,但如果我尝试在控制台中设置管理员,我会收到错误。

1 个答案:

答案 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