我有一个像这样的简单factories.rb
:
FactoryGirl.define do
factory :book_category do
sequence(:name) { |n| "Cateogry #{n}" }
end
factory :book do
sequence(:title) { |n| "Book #{n}" }
end
end
运行像rails g model categorization book:references category:references
这样的模型生成器之后,我的文件最终会像这样:
FactoryGirl.define do factory :categorization do
book nil
category nil
end
factory :post_category do
sequence(:name) { |n| "Cateogry #{n}" }
end
factory :book do
sequence(:title) { |n| "Book #{n}" }
end
end
这发生在每一代模型之后。
另外,如果我在创建模型之前创建工厂,然后运行生成器来创建模型,则会出现类似“工厂已存在”之类的错误。所以我必须等到我在添加工厂之前生成模型。
这是一个错误吗?
我正在使用rails 4.2.4和factory_girl_rails 4.5.0。
修改:我尝试删除factories.rb
文件中的所有内容,然后添加:
FactoryGirl.define do
end
尝试使用命令rails g factory_girl:model book
生成模型工厂后,这就是我最终的结果:
FactoryGirl.define do factory :book do
end
end
答案 0 :(得分:0)
我认为它与factory.rb文件中存在的空白字符有关。因为它来自源(https://github.com/thoughtbot/factory_girl_rails/blob/master/lib/generators/factory_girl/model/model_generator.rb#L46),所以它会在“\ n”字符后插入代码。
确保您没有奇怪的空白字符,甚至可能使用rails g factory_girl:model
重新生成工厂文件。