私がセットアップを間違った方法で行っているのなら誰かが教えてもらえますか?
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
工場も同様に設定されています。行がコメント化されている
場合、association :features
私のテストはすべて合格です。
あるとき
association :features, :factory => :feature
エラーメッセージは
、配列を返すundefined method 'each' for #<Feature>
ため、私にはわかりやすいと思いlisting.features
ます。だから私はそれを
association :features, [:factory => :feature]
そして今私が得るエラーはArgumentError: Not registered: features
、このようにファクトリオブジェクトを生成することは賢明ではないのですか、それとも私は何が欠けているのですか?すべての入力をありがとうございました!