![](/img/trans.png)
[英]Failing Rspec tests at the end of Rails Tutorial ch 9 for unknown reason
[英]RSpec tests failing with 'unknown attribute'
我正在模型中測試屬性響應:
it { should respond_to(:password) }
it { should respond_to(:password_confirmation) }
這些屬性不是數據庫的一部分,而只是在我的模型中聲明為attr_accessible
。 當我不聲明它們並運行測試時,我得到:
ActiveModel::MassAssignmentSecurity::Error:
Can't mass-assign protected attributes: password, password_confirmation
但是在我聲明它們之后,我得到了:
ActiveRecord::UnknownAttributeError:
unknown attribute: password
知道為什么會這樣嗎?
@ 8vius,因為您正在關注本教程,但不夠緊密。 您需要添加以下行:
has_secure_password
在attr_accessible下面:email,:name,:role,:password,:password_confirmation
這使您可以將純文本密碼和password_confirmation保存到內存中,以便在加密並保存到數據庫之前可以比較字符串並強制執行相等性。 您不想將密碼以純文本格式保留在數據庫上。
attr_accessible
告訴Rails您允許對屬性進行所謂的批量分配。
但是屬性必須存在於db中,或者您應該創建getter / setter,最簡單的方法是:
attr_accessor :password_confirmation, :password
無論如何,聽起來很奇怪,您沒有存儲密碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.