0

我在开发 Rails 3 可安装引擎时一直尝试使用 FactoryGirl,当在规范中调用工厂时,它返回以下错误:

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

楷模

Foo::酒吧

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)

这解决了这个问题。

谢谢你,jimworm 的帮助。

于 2012-09-15T14:00:56.687 回答
0

关联在 factory_girl 中指定为association :factory_name

于 2012-09-14T22:52:27.260 回答