কেউ যদি আমাকে বলতে পারে যে আমি ঠিক সেটআপটি ভুল পথে চালাচ্ছি?
আমার কাছে নিম্নলিখিত মডেলগুলি রয়েছে যা 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
আমি রেলগুলি ৩.১.সিআরসি ৪, ফ্যাক্টরিজর্ল ২.০.২, ফ্যাক্টরি_গার্ল_রেইলস ১.১.০ এবং আরএসপিএক ব্যবহার করছি। :listing
কারখানার জন্য এখানে আমার বেসিক আরএসপেক আরএসপেক স্যানিটি পরীক্ষা করা হয়েছে :
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
লাইনটি মন্তব্য করা হয়, তবে আমার সমস্ত পরীক্ষা পাস হয় pass
কখন
association :features, :factory => :feature
ত্রুটি বার্তাটি
undefined method 'each' for #<Feature>
যা আমি আমার কাছে বোধগম্য করেছি কারণ listing.features
একটি অ্যারে ফিরিয়ে দেয়। সুতরাং আমি এটি পরিবর্তন
association :features, [:factory => :feature]
এবং আমি যে ত্রুটিটি পেয়েছি ArgumentError: Not registered: features
তা হ'ল এইভাবে কারখানার অবজেক্ট তৈরি করা কি বুদ্ধিমানের নয়, বা আমি কী অনুপস্থিত? যে কোনও এবং সমস্ত ইনপুট জন্য অনেক ধন্যবাদ!