Девочка фабрики и has_one

Вот мои модели:

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 !

Поскольку у меня есть наблюдатель на моем видео, которые пытаются получить доступ к прослушиванию от видео объекта

Я попробовал несколько вещей, но я всегда заканчиваю уровнем стека слишком глубоко или нолем прослушивания.

У Вас есть идея?

Спасибо, Mike

6
задан kiamlaluno 21 August 2010 в 05:37
поделиться

1 ответ

Если это так, я бы добавил ассоциацию в другую фабрику:

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)

Надеюсь, то, что я сказал, имеет смысл и является правдой lol. Дайте нам знать, как вы справляетесь.

7
ответ дан 17 December 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: