Создание ассоциации Factory, которая по умолчанию равна нулю?

Используя гем FactoryGirl внутри файла factory.rb, как я могу создать фабрику с ассоциацией, которая по умолчанию равна нулю?

Я думаю что-то в этом духе:

Factory.define :user do |factory|
  factory.association :post
  factory.association :comment, :default => nil
end

Будет ли это правильно и можно ли это сделать?


person John    schedule 08.12.2011    source источник
comment
Разве не будет nil по умолчанию, если вы вообще не упомянете эту ассоциацию в своем фабричном определении?   -  person KL-7    schedule 09.12.2011
comment
Хорошая точка зрения. Я беспокоился, что это будет означать, что использование Factory в файле seed.rb не сработает, но теперь я считаю, что волноваться было неправильно.   -  person John    schedule 09.12.2011
comment
Отметьте stackoverflow.com/a/20407116/474597, если вы хотите переопределить ассоциацию до нуля.   -  person lulalala    schedule 16.08.2016


Ответы (1)


FactoryGirl теперь выигрывает от :null стратегии . Таким образом, вы можете определить свою ассоциацию следующим образом:

factory :user do
  association :post
  association :comment, strategy: :null
end

Это оставит ассоциацию, установленную на nil, при использовании этой фабрики. Лучше использовать эту стратегию, чем вообще не определять ассоциацию, потому что вы можете легко изменить стратегии в свойствах/в будущем.

person linkyndy    schedule 17.01.2016