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
首先,看一下源项目,看看它是如何实现的:
之后,尝试猜测它是如何工作的:
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
这不是一个答案,但因为我还不能评论:我认为你可以用这个来解决你的问题的一部分。 您可以使用名为schema_to_scaffold的gem来生成factory_girl:model命令string。 它输出:
rails generate factory_girl:模型用户fname:stringlname:stringbdate:dateemail:stringencrypted_password:string
从您的schema.rb或您的重命名的schema.rb。
在这里或这里检查
这里有一些很好的答案,但另一个select是使用stepford 。 对于一些使用具有外键约束的模式的项目,deep_ *方法等可能会有所帮助,而且这是通过命令行生成工厂的简单方法。