2013-01-23 35 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