¿Alguien puede decirme si me estoy ocupando de la configuración de la manera incorrecta?Cómo configurar una fábrica en FactoryGirl con la asociación has_many
que tienen los siguientes modelos que tienen asociaciones has_many.through:
class Listing < ActiveRecord::Base
attr_accessible ...
has_many :listing_features
has_many :features, :through => :listing_features
validates_presence_of ...
...
end
class Feature < ActiveRecord::Base
attr_accessible ...
validates_presence_of ...
validates_uniqueness_of ...
has_many :listing_features
has_many :listings, :through => :listing_features
end
class ListingFeature < ActiveRecord::Base
attr_accessible :feature_id, :listing_id
belongs_to :feature
belongs_to :listing
end
que estoy usando Rails 3.1.rc4, factorygirl 2.0.2, 1.1.0, y factory_girl_rails rspec. Aquí está mi comprobación básica rspec rspec cordura para la fábrica :listing
:
it "creates a valid listing from factory" do
Factory(:listing).should be_valid
end
aquí es de fábrica (: lista)
FactoryGirl.define do
factory :listing do
headline 'headline'
home_desc 'this is the home description'
association :user, :factory => :user
association :layout, :factory => :layout
association :features, :factory => :feature
end
end
Los :listing_feature
y :feature
fábricas son igualmente configuración.
Si la línea association :features
está comentada, todas mis pruebas pasan.
Cuando es
association :features, :factory => :feature
el mensaje de error es undefined method 'each' for #<Feature>
que me pareció tenía sentido para mí, porque ya listing.features
devuelve una matriz. Así que lo cambié a
association :features, [:factory => :feature]
y el error que consigo ahora está ArgumentError: Not registered: features
se trata sólo de no ser sensibles a la generación de objetos de fábrica de esta manera, o lo que me estoy perdiendo? Muchas gracias por cualquier entrada!
acabaste usando asociación: características, [: Fábrica =>: Función]? – davidtingsu