0

我遵循这个 railscast 并构建了一个简单的身份验证架构,该架构在开发中表现出色:http ://railscasts.com/episodes/250-authentication-from-scratch

现在,在部署到 heroku 后,创建新用户时出现错误。

日志:

2013-07-22T20:03:07.688326+00:00 app[web.1]: NoMethodError (undefined method `password_salt=' for #<User:0x00000005ca3050>):
2013-07-22T20:03:07.792383+00:00 app[web.1]:   app/models/user.rb:16:in `encrypt_password'
2013-07-22T20:03:07.898375+00:00 app[web.1]:   app/controllers/users_controller.rb:24:in `create'

在我的用户模型中,这种方法是:

  def encrypt_password
    if password.present?
      self.password_salt = BCrypt::Engine.generate_salt
      self.password_hash = BCrypt::Engine.hash_secret(password, password_salt)
    end
  end

宝石文件:

gem 'bcrypt-ruby', :require => "bcrypt"

bundle install 在heroku上成功运行,gem已安装

不知道这里出了什么问题,有什么想法吗?

谢谢

4

1 回答 1

0

'rake db:migrate'在部署到heroku服务器后运行了吗?ActiveRecord根据表中的列在模型中动态创建属性。所以很可能userstable 没有 column password_salt

于 2013-07-22T20:44:36.400 回答