【问题标题】:How to get has_secure_password to work in production?如何让 has_secure_password 在生产中工作?
【发布时间】:2012-03-06 15:37:37
【问题描述】:

我在一个新应用程序中使用 has_secure_password,它在本地运行良好。但是,当我部署到我们的服务器并尝试运行它时,我收到以下错误消息:

未定义的局部变量或方法“has_secure_password” WorkerLogin:类

我做了一个bundle install 和一切,所以我不确定缺少什么。我正在使用 ruby​​ 1.9.2p290,但我认为这不是问题。

想法?

【问题讨论】:

  • 在检查 bcrypt-ruby gem 之后,您能否提供 WorkingLogin 类和您正在使用的 Rails 版本,如下面的答案所述。
  • 我很讨厌我提出一个问题,后来才意识到这是因为我自己的愚蠢,没有人可能知道解决方案。

标签: ruby ruby-on-rails-3 security deployment


【解决方案1】:

我最终意识到,当我进行 Capistrano 部署时,我的最新代码还没有推送到 GitHub。我已将 include ActiveModel::SecurePassword 添加到我的 WorkerLogin 类但未签入。此行是必需的,因为我使用的是 MongoDB/MongoMapper,它不会像 ActiveRecord 那样自动包含 ActiveModel::SecurePassword

【讨论】:

    【解决方案2】:

    在 Gemfile 中取消注释或添加这一行:

    gem 'bcrypt-ruby', '~> 3.0.0'
    

    并运行捆绑安装

    【讨论】:

    • 我最终找到了自己的问题,但这对于使用 SecurePassword 的其他人来说是一个很好的提示。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2016-06-12
    • 2012-04-01
    • 2018-05-24
    • 1970-01-01
    • 2021-02-13
    相关资源
    最近更新 更多