0

私は2つのモデルの間に1つの関係があります。関係は機能しますが、問題は、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、shoulda-matchers、またはその両方が、アソシエーションからクラス名を推測するのに苦労しています。

2つの選択肢があります。まず、関連付けの名前を従来の名前に変更することをお勧めします。

has_one :user_reset_password

これにより、レールがクラス名を正しく推測できるようになりますUserResetPassword

次に、当て推量を削除して、クラス名が何であるかをレールに伝えることができます。これは、関連付け名を変更できない、または変更したくない場合にのみ推奨されます。

has_one :userresetpassword, :class_name => "UserResetPassword"

于 2013-01-23T23:45:35.037 に答える