2013-01-23 70 views
0

我有兩個模型之間有一個關係。這種關係是有效的,但問題是當我用shoulda匹配器寫一個Rspec測試時,我返回一個錯誤。Rails有一個Rspec測試告訴我Unitialized Constant

Failure/Error: it { should have_one(:userresetpassword)} 
NameError: 
    uninitialized constant User::Userresetpassword 

我在user.rb

has_one :userresetpassword 

代碼我的RSpec的測試

describe "associations" do 
    it { should have_one(:userresetpassword)} 
end 

回答

2

你的公會是錯誤命名,無論是軌道,早該-匹配器或兩者都不好受猜測它的類名。

你有兩種選擇。首先,優選的是重命名該協會是常規:

has_one :user_reset_password

這將使軌猜中類名UserResetPassword

其次,你可以簡單地刪除臆測,並告訴Rails類名是什麼是。如果你不能或很不想改變關聯名稱,這是唯一的選擇。

has_one :userresetpassword, :class_name => "UserResetPassword"

+0

'require'spec_helper''在spec文件中。爲了簡潔,我省略了它。 – jason328

+0

它看起來應該或rails不知道你想要的類名是什麼,該協會的類名是什麼?你的關聯名稱會表明它是'Userresetpassword'。 –

+0

關閉,它是'UserResetPassword'。 – jason328