FactoryGirl + RSpec + Rails 3引擎'未定义方法'

时间:2012-09-14 22:45:18

标签: ruby-on-rails-3 factory-bot rspec-rails

在开发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 ='并按照答案进行操作,但仍无效。

关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分: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的帮助。

答案 1 :(得分:0)

在factory_girl中将关联指定为association :factory_name