0

我在两个模型之间有一个关系。这种关系有效,但问题是当我用 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
4

1 回答 1

2

您的关联名称错误,并且 rails、shouda-matchers 或两者都很难从中猜出类名。

你有两个选择。首先,最好将关联重命名为常规:

has_one :user_reset_password

这将允许 rails 正确猜测类名UserResetPassword

其次,您可以简单地消除猜测并告诉 rails 类名是什么。仅当您不能或非常不想更改关联名称时,这才是可取的。

has_one :userresetpassword, :class_name => "UserResetPassword"

于 2013-01-23T23:45:35.037 回答