Rails设计对用户模型添加列

时间:2017-04-15 21:51:20

标签: ruby-on-rails ruby devise

我无法访问我添加到使用Devise创建的用户模型中的列。

  • 我采取的步骤:

    1. 添加了Devise gem并使用rails generate the devise User创建了User。
    2. 添加了两列 - first_name和last_name到User with a 迁移并运行它。
    3. 我可以配置允许的参数 注册和访问这些字段(first_name和last_name) 帐户更新:

before_filter:configure_permitted_pa​​rameters,if :: devise_controller? 保护

def configure_permitted_pa​​rameters   devise_parameter_sanitizer.permit(:sign_up,keys:[:first_name,:last_name)   devise_parameter_sanitizer.permit(:account_update,keys:[:first_name,:last_name]) 端

  • 问题:

登录后我想显示current_user.last_name,但我无法访问它。 我可以访问默认列 - current_user.email,current_user.id。

  • 问题:

有谁知道我应该配置什么才能显示current_user.last_name?

1 个答案:

答案 0 :(得分:0)

我发现了我的问题:我在User模型上使用attr_accessor s。

使用attr_accessor我用普通的ruby版本覆盖了ActiveRecord方法,这些版本不会将值保存到数据库中。

我删除了它,现在可以使用了。