FactoryGirl能否在模型创build后生成工厂?

当在你的dev和gemfile的testing块中包含factory_girl_rails gem时,rails会在你的模型生成时自动生成工厂。

模型生成后有没有办法生成工厂?


爱德华多桑塔纳的答案应该是正确的

--fixture-replacement选项可以让你告诉轨道什么产生build设testing数据。 您可以在config/application.rb文件中将其设置为默认值,如下所示:

 config.generators do |g| g.fixture_replacement :factory_girl end 

首先,看一下源项目,看看它是如何实现的:

https://github.com/thoughtbot/factory_girl_rails/blob/master/lib/generators/factory_girl/model/model_generator.rb

之后,尝试猜测它是如何工作的:

 rails g factory_girl:model Car name speed:integer 

结果是:

 create test/factories/cars.rb 

内容:

 # Read about factories at https://github.com/thoughtbot/factory_girl FactoryGirl.define do factory :car do name "MyString" speed 1 end end 

请记住,当您使用rails g时,您可以随时使用rails d将其撤消

 rails d factory_girl:model Car name speed:integer 

我有一个精确的这个https://github.com/markburns/to_factory

这不是一个答案,但因为我还不能评论:我认为你可以用这个来解决你的问题的一部分。 您可以使用名为schema_to_scaffold的gem来生成factory_girl:model命令string。 它输出:

rails generate factory_girl:模型用户fname:stringlname:stringbdate:dateemail:stringencrypted_pa​​ssword:string

从您的schema.rb或您的重命名的schema.rb。

在这里或这里检查

这里有一些很好的答案,但另一个select是使用stepford 。 对于一些使用具有外键约束的模式的项目,deep_ *方法等可能会有所帮助,而且这是通过命令行生成工厂的简单方法。