簡體   English   中英

RSpec測試失敗,並顯示“未知屬性”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM