내가 잘못된 방식으로 설정하는 경우 누군가 말해 줄 수 있습니까?
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
저는 Rails 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
여기는 Factory (: listing)
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
공장 유사하게 설정합니다.
는 IF association :features
라인이 주석 다음 내 모든 테스트를 통과.
때
association :features, :factory => :feature
오류 메시지는
배열을 반환 undefined method 'each' for #<Feature>
하기 때문에 나에게 의미가 있다고 생각했습니다 listing.features
. 그래서 나는 그것을
association :features, [:factory => :feature]
그리고 지금 내가 얻는 오류는 ArgumentError: Not registered: features
이런 식으로 팩토리 객체를 생성하는 것이 합리적이지 않습니까? 아니면 무엇을 놓치고 있습니까? 모든 의견에 감사드립니다!