Czy ktoś może mi powiedzieć, że jeśli chodzi o konfigurację w niewłaściwy sposób?Jak założyć fabrykę w FactoryGirl z has_many association
mam następujące modele, które mają has_many.through skojarzenia:
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
Używam Rails 3.1.rc4, FactoryGirl 2.0.2, 1.1.0 i factory_girl_rails rspec. Tu jest mój podstawowy rspec rspec poczytalność czek na fabryce :listing
:
it "creates a valid listing from factory" do
Factory(:listing).should be_valid
end
Oto Factory (: aukcja)
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
W :listing_feature
i :feature
fabryki są w podobny setup.
Jeśli linia association :features
jest zakomentowana, wszystkie testy zakończą się pomyślnie.
Gdy jest
association :features, :factory => :feature
komunikat o błędzie jest undefined method 'each' for #<Feature>
co uważałem, że dla mnie sens, ponieważ z powodu listing.features
zwraca tablicę. Więc zmieniłem go
association :features, [:factory => :feature]
a błąd mam teraz jest ArgumentError: Not registered: features
Czy to po prostu nie rozsądne, aby być generowanie obiektów fabryki w ten sposób, albo co mi brakuje? Dziękuję bardzo za wszelkie dane wejściowe!
nie skończy się za pomocą asocjacji: cechy, [: fabryka =>: funkcja]? – davidtingsu