class Food < ActiveRecord::Base
has_many :images, as: :imageable, foreign_key: :imageable_uuid, dependent: :destroy
end
class MenuPhoto < ActiveRecord::Base
has_one :image, as: :imageable, foreign_key: :imageable_uuid, dependent: :destroy
end
class Image < ActiveRecord::Base
belongs_to :imageable, foreign_key: :imageable_uuid, :polymorphic => true
end
上記のモデルにはポリモーフィックを使用しています。だから私の工場の女の子では、私はこのようにしています。
factory :food do
association :images, factory: :image
end
factory :menu_photo do
association :image, factory: :image
end
factory :image do
photo { fixture_file_upload(Rails.root.join("spec", "fixtures", "pass.jpg"), "image/jpg") }
end
「 FactoryGirl.create(:menu_photo) 」を使用して Rails コンソールのテスト環境でテストすると、正常に動作します。:menu_photo と :image の両方を作成します。しかし、「 FactoryGirl.create(:food) 」で実行すると、次のエラーが表示されます: NoMethodError: undefined method `each' for #