【问题标题】:Rails Devise access to User model added columnsRails 设计访问用户模型添加的列
【发布时间】:2017-04-15 21:51:20
【问题描述】:

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

  • 我采取的步骤:

    1. 添加了 Devise gem 并使用 rails generate devise User 创建了用户。
    2. 向用户添加了两列 - first_name 和 last_name 迁移并运行它。
    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, 键: [:first_name, :last_name]) 结束

  • 问题:

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

  • 问题:

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

【问题讨论】:

  • 您遇到错误了吗?在我看来您的设置是正确的,您是否确认姓氏和名字已保存到数据库中?您可以发布到目前为止您尝试过的代码吗?
  • 您无需进行任何配置。当您尝试显示它时会发生什么,一个错误或只是空的?

标签: ruby-on-rails ruby devise


【解决方案1】:

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

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

我删除了它,它现在可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    相关资源
    最近更新 更多