0

Rails 3 マウント可能なエンジンの開発中に FactoryGirl を使用しようとしましたが、仕様でファクトリが呼び出されると、次のエラーが返されます。

NoMethodError: undefined method `foo_bar=' for #<Foo::Baz:0x007fed6e3e2700>

モデル

フー::バー

module Foo
  class Bar < ActiveRecord::Base
    has_many :bazs
  end
end

フー::バズ

module Foo
  class Baz < ActiveRecord::Base
    belongs_to :bar
  end
end

工場

FactoryGirl.define do
  factory :foo_bar, class: Foo::Bar do
    ...
  end

  factory :foo_baz, class: Foo::Baz do
    foo_bar
  end
end

他のトピックFactoryGirl + RSpec + Rails 3 'undefined method ='を見て、答えに従ったが、それでも動作しませんでした。

これを解決する方法についてのアイデアはありますか?

4

2 に答える 2

1

この問題は、私の仕様で間違った関連付け名を使用して FactoryGirl から create を呼び出したことが原因でした。

FactoryGirl.create(:foo_baz, foo_bar: @bar, created_at: 1.day.ago)

Jimworm の助けを借りて、仕様を確認するよう指示されたので、以下に示す呼び出しを変更しました。

FactoryGirl.create(:foo_baz, bar: @bar, created_at: 1.day.ago)

これで問題は解決しました。

助けてくれてありがとう、ジムワーム。

于 2012-09-15T14:00:56.687 に答える
0

関連付けは factory_girl で として指定されassociation :factory_nameます。

于 2012-09-14T22:52:27.260 に答える