How to set up factory in FactoryGirl with has_many association

前端 未结 5 760
深忆病人
深忆病人 2020-12-07 12:54

Can someone tell me if I\'m just going about the setup the wrong way?

I have the following models that have has_many.through associations:

class List         


        
5条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-07 13:55

    Here is how I set mine up:

    # Model 1 PreferenceSet
    class PreferenceSet < ActiveRecord::Base
      belongs_to :user
      has_many :preferences, dependent: :destroy
    end
    
    #Model 2 Preference
    
    class Preference < ActiveRecord::Base    
      belongs_to :preference_set
    end
    
    
    
    # factories/preference_set.rb
    
    FactoryGirl.define do
      factory :preference_set do
        user factory: :user
        filter_name "market, filter_structure"
    
        factory :preference_set_with_preferences do
          after(:create) do |preference|
            create(:preference, preference_set: preference)
            create(:filter_structure_preference, preference_set: preference)
          end
        end
      end
    
    end
    
    # factories/preference.rb
    
    FactoryGirl.define do
      factory :preference do |p|
        filter_name "market"
        filter_value "12"
      end
    
      factory :filter_structure_preference, parent: :preference do
        filter_name "structure"
        filter_value "7"
      end
    end
    

    And then in your tests you can do:

    @preference_set = FactoryGirl.create(:preference_set_with_preferences)
    

    Hope that helps.

提交回复
热议问题