所有迁移都需要宝石

时间:2017-05-15 18:33:13

标签: ruby-on-rails ruby-on-rails-5

我在我的gemfile(gem "lhm", "~> 2.2.0", require: false)中有这个gem,我希望在所有迁移中都需要它。行为类似于在所有规范文件中要求spec_helper的行为。

我考虑过使用bin/railsbin/rake做一些事情,但我不希望它在所有任务中都需要,只需要迁移。 IE浏览器。 rake db:migrate或现在的别名rails db:migrate

1 个答案:

答案 0 :(得分:0)

由于您可能没有使用lhm进行所有迁移,因此我建议仅将require "lhm"添加到您正在使用的迁移中。但要回答你的问题,你可以使用rake的enhance方法:

将以下内容添加到lib/tasks/something.rake

namespace :load do
  namespace :lhm do
    desc "This just loads lhm"
    task lhm: :environment do
      require "lhm"
    end
  end
end

Rake::Task['db:migrate'].enhance(['load:lhm'])

作为示例,请参阅here