2009-10-03 78 views
1

我得到一個類似的錯誤這個職位Ruby on Rails Authlogic password not valid「密碼無效」,這似乎從來沒有,如果我創建一個新用戶要在腳本/控制檯解決Authlogic密碼是無效的錯誤

myval = "[email protected]" 
u = User.create(:email => myval, :password => myval, :password_confirmation => myval) 
u.valid? 
>> true 
u.save 
>> true 
u.valid_password?(myval) 
>>false 

如果我在user.rb設置:

acts_as_authentic do |c| 
    c.validate_password_field = false 
end 

我得到了同樣的答覆。有什麼建議麼?

+0

永遠不要忘記檢查你的遷移,並在所有其他的失敗時找到一個工作和反向工作的項目。我使用了一種奇怪的authlogic和平穩身份驗證遷移組合。 – Schneems 2009-10-04 16:37:27

+0

我的回答能幫助你解決這個問題嗎?如果是這樣,請接受它(如果您願意,請提高它)。到目前爲止,您已經提出了7個問題,但您尚未接受任何問題的答案。 – 2009-10-05 13:40:45

+0

唉,我沒有所需的15分投票給你,如果有其他人來這篇文章,你可以請給彼得他的應有的。除非我錯過了一些隱藏的「接受解決方案」按鈕。 – Schneems 2009-10-06 02:08:32

回答

4

我只是仔細研究了AuthLogic代碼,它看起來像將validate_password_field設置爲false只會阻止Rails運行默認驗證。它對valid_password?方法沒有影響。

還有一些其他因素似乎導致它返回false。這些包括但不僅限於:

  • 檢查是否爲空白密碼
  • 的加密的密碼爲空
  • 的密碼不匹配。 (因爲有各種各樣的參與這一因素,其中包括CryptoProvider和你是否正在使用RestfulAuthentication風格口令這一個有點複雜。)

要給出更明確的答案,我可能需要有關您的確切設置的更多信息。

+0

猜猜誰回答了問題... – Schneems 2009-10-19 06:34:57

2

我有一個類似的問題這一點,原來舊的寧靜驗證密碼字段在長度超過40個字符時,遷移需要Authlogic 255

+0

謝謝!我有同樣的問題,並沒有想法......更新我的數據庫字段從40到255做了訣竅。 – fredw 2011-04-13 21:47:18

0

嘗試備註「before_save:ENCRYPT_PASSWORD」在user.rb如果您有。

# before_save :encrypt_password 
1

就我而言,這只是一個混亂的數據庫遷移。 rake db:migrate VERSION=0 && rake db:migrate爲我解決了這個問題。