在开发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 ='并按照答案进行操作,但仍无效。
关于如何解决这个问题的任何想法?
答案 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
。