2013-07-22 156 views
0

問題後我跟着這個railscast並建立了一個簡單的認證架構,適用於發展一流的:http://railscasts.com/episodes/250-authentication-from-scratchbcrypt紅寶石寶石:部署到Heroku的

現在,部署到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" 

束在Heroku上成功安裝然,安裝了寶石

不知道這裏出了什麼問題,有什麼想法?

感謝

+0

解決 - 安裝的寶石版本是3.0.1,強制「〜> 3.1.1」,現在就可以使用! – DonMB

回答

0

你部署Heroku的服務器運行後'rake db:migrate'ActiveRecord根據表中的列動態創建模型中的屬性。所以最有可能的users表只是沒有列password_salt

+0

當然,做到了! +通過控制檯檢查用戶表告訴我列在那裏 – DonMB