क्या कोई मुझे बता सकता है कि क्या मैं सेटअप के बारे में गलत तरीके से जा रहा हूं?
मेरे पास निम्नलिखित मॉडल हैं जिनमें 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
मैं रेलिंग 3.1.rc4, FactoryGirl 2.0.2, factory_girl_rails 1.1.0 और rspec का उपयोग कर रहा हूं। यहाँ :listing
कारखाने के लिए मेरा मूल rspec rspec पवित्रता जाँच है :
it "creates a valid listing from factory" do
Factory(:listing).should be_valid
end
यहाँ कारखाना है (लिस्टिंग)
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
:listing_feature
और :feature
कारखानों इसी तरह सेटअप कर रहे हैं।
यदि association :features
लाइन पर टिप्पणी की जाती है, तो मेरे सभी परीक्षण पास हो जाते हैं।
जब यह है
association :features, :factory => :feature
त्रुटि संदेश वह है
undefined method 'each' for #<Feature>
जो मैंने सोचा कि मेरे लिए समझ में आता है क्योंकि listing.features
एक सरणी देता है। इसलिए मैंने इसे बदल दिया
association :features, [:factory => :feature]
और अब मुझे जो त्रुटि मिल रही है, ArgumentError: Not registered: features
क्या यह कारखाना वस्तुओं को इस तरह से पैदा करने के लिए समझदार नहीं है, या मैं क्या याद कर रहा हूं? किसी भी और सभी इनपुट के लिए बहुत बहुत धन्यवाद!