我在两个模型之间有一个关系。这种关系有效,但问题是,当我用shoulda匹配器编写Rspec测试时,我收到错误。
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
答案 0 :(得分:2)
您的关联名称错误,无论是rails,shoulda-matchers还是两者都难以从中猜出类名。
你有两个选择。首先,最好将关联重命名为常规:
has_one :user_reset_password
这将允许rails正确猜出类名UserResetPassword
其次,您可以简单地删除猜测并告诉rails类名是什么。如果您不能或者非常不想更改关联名称,这是唯一的选择。
has_one :userresetpassword, :class_name => "UserResetPassword"