6

ここに私のモデルがあります:

Class Audition
  belongs_to :video
end

Class Video
  has_one :audition
end

そして私の工場:

Factory.define :video do |v|
  v.filename  {Sham.filename}
  v.video_url {Sham.url}
end

Factory.define :audition do |a|
  a.video     {|a| a.association(:video)}
  a.label     {Sham.label}
end

オーディションのあるビデオ工場を作るにはどうすればいいですか?

つまり、次のことができます。

v = Factory.create(:video)
v.audition # I'd like this to be not nil !

ビデオオブジェクトからオーディションにアクセスしようとするオブザーバーがビデオにいるため

いくつかのことを試しましたが、スタック レベルが深すぎるか、オーディション ゼロで終わります。

アイデアはありますか?

ありがとう、マイク

4

2 に答える 2

7

その場合は、関連付けを他のファクトリに追加します。

Factory.define :video do |v|
  v.filename                        {Sham.filename}
  v.video_url                       {Sham.url}
  v.audition                        {|v| v.association(:audition)}
end

それからあなたはすることができます

v = Factory(:video) # This will now have an audition
a = v.audition # This should not be nil

a = Factory(:audition) # An audition without a video, if that's possible?

テストでファクトリを作成するときに、必要に応じて関連付けをオーバーライドすることもできます。

v = Factory(:video, :audition => Factory(:audition))
v = Factory(:video, :audition => nil)

私が言ったことが理にかなっており、真実であることを願っています笑。乗り方を教えてください。

于 2010-02-10T20:53:22.583 に答える