我遵循了这个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
的Gemfile:
gem 'bcrypt-ruby', :require => "bcrypt"
bundle install在heroku上成功运行,安装了gem
不知道这里出了什么问题,有什么想法吗?
感谢
答案 0 :(得分:0)
部署到heroku服务器后,您是否运行了'rake db:migrate'
? ActiveRecord 会根据表格中的列动态创建模型中的属性。所以很可能users
表没有列password_salt
。