ポリモーフィック関連のfactoryの書き方 on FactoryGirl
こんな感じで、polymorphic関連を設定しているとします。
# Photo model class Photo < ActiveRecord::Base belongs_to :category, :polymorphic => true end # Mountain model class Mountain < ActiveRecord::Base has_one :photo, :as => :category end # River model class River < ActiveRecord::Base has_one :photo, :as => :category end
そんでもって、こんなfactoryを書きます。
FactoryGirl.define do factory :mountain_photo, class: "Photo" do association :category, factory: :mountain end factory :river_photo, class: "Photo" do association :category, factory: :river end factory :moutain do name "Mt.hoge" end factory :river do name "Riv.fuga" end end
これで "FactoryGirl.create(:mountain_photo)" とやると、:categoryに:mountainが入ったレコードが、"FactoryGirl.create(:river_photo)" とやれば、:categoryに:riverが入ったレコードが生成されるようになります。
ではでは。