Использование Factory Girl для создания фабрики для участия в обсуждениях и обсуждениях - PullRequest
0 голосов
/ 20 марта 2011

Может ли кто-нибудь привести пример или указать, где я могу узнать, как выполнять ассоциации вложенных моделей Factory Girl?

В потоке должна быть хотя бы одна ThreadParticipation

Прямо сейчас у меня естьмоя ветка в factories.rb выглядит следующим образом:

Factory.define :thread do |thread|
  thread.title             "mythread"
end

Как мне тогда создать ThreadParticipation?

Спасибо

1 Ответ

3 голосов
/ 20 марта 2011

Файл Getting Started в источнике factory_girl содержит информацию об ассоциациях.

Могут быть созданы связанные экземпляры используя метод ассоциации, когда определение ленивого атрибута:

factory :post do
  # ...
  author 
end

Вы также можете указать другой атрибуты фабрики или переопределения:

factory :post do
  # ...
  association :author, :factory => :user, :last_name => 'Writely'
end

Итак, в вашем случае, я мог бы представить себе что-то вроде этого:

Factory.define :thread do |thread|
  thread.title "mythread"
  thread.thread_participation
end

Factory.define :thread_participation do |ppn|
  ppn.attribute "value"
end

Если вы используете коллекцию вместо has_one / belongs_to, вы можете создать массив следующим образом:

Factory.define :thread do |thread|
  thread.title "mythread"
  thread.thread_participations { |a| [a.association(:thread_participation)] }
end
...