ruby - 如何用使用rails3-generators的工厂替换固定装置?

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

我正在尝试用使用rails3-generators的工厂来替换夹具生成:

https://github.com/indirect/rails3-generators#readme

该 gem 包含在我的 Gemfile 中并已安装:

# Gemfile
gem 'rails3-generators', :group => :development

我将以下内容添加到 application.rb:

# application.rb
config.generators do |g|
  g.stylesheets false
  g.fixture_replacement :factory_girl
end

然而“rails g model Insect”仍在生成固定装置(“insects.yml”)。这对使用 Rails 3.0.4 和rails3-generators 0.17.4 的其他人有效吗?

“rails g”显示可用的新生成器(例如 Authlogic 和 Koala),但“rails g model”仍然列出固定装置并且不引用工厂。

我还应该添加什么才能使其正常工作?谢谢。

编辑:我运行了 gem 的测试套件,其中包括对此的测试,并且它通过了。不知道为什么它不适用于我的应用程序。

Edit2:我再次尝试了一个测试项目,得到了相同的结果:固定装置而不是工厂。如果有人可以确认这是否适用于 Rails 3.0.4 和 Rails3-generators 0.17.4,那也会很有帮助,因为这意味着我的项目做错了。

Edit3:如果我运行“rails g model Insect -r plant_girl”,它就会起作用。我认为 application.rb 中的生成器配置应该解决这个问题,所以这似乎是问题的根源。

最佳答案

搜索周围我发现以下内容可能会有所帮助:

  1. 尝试为 factory_girl 的工厂指定目录选项:

    config.generators do |g|
      g.stylesheets false
      g.fixture_replacement :factory_girl, :dir => "spec/factories" # or test/factories, as the case may be
    end
    
  2. 如果您使用 Test::Unit,请尝试以下操作:

    config.generators do |g|
      g.stylesheets false
      g.test_framework  :test_unit, :fixture_replacement => :factory_girl
    end
    

在这两种情况下,您仍然需要 rails3-generators gem,尽管有插入将该功能引入到 factory_girl_rails 中。

This Rails bug表明在某些时候,g.fixture_replacement 代码可能无法正常工作。也许 3.0.5 中的测试是合适的。 :)

关于ruby - 如何用使用rails3-generators的工厂替换固定装置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5091313/

相关文章:

ruby-on-rails - 绘制 Highcharts 时 ruby​​ 代码中出现“TypeError”或 'expected numeric' 错误

ruby-on-rails - 找不到 PostgreSQL 客户端库 (libpq)

ruby-on-rails-3 - Rails3 自定义日志记录选项?

ruby-on-rails - RSpec:带有 searchkick 的无效模型

ruby-on-rails - factory_bot 和factory_bot_rails gem 有什么区别?

ruby - 在这种情况下 << 是什么?

Ruby:Test::Unit 还存在吗?

ruby - File.open 忽略路径

ruby-on-rails - 检查 Rails 中的 Controller 是否存在记录

ruby-on-rails - 避免在循环中重复记录