在routes.rb更新上调用rake任务?

时间:2015-05-13 07:08:08

标签: ruby-on-rails ruby ruby-on-rails-4

使用rails 4.2.1

我想在每个rake文件保存上调用config/routes.rb任务。我该怎么做呢?

注意:rake任务确实需要rails环境。即它是task :task_name => :environment do #...性质的。

2 个答案:

答案 0 :(得分:1)

查看filewatcher gem。

您可以根据对指定文件(或目录)所做的更改来定义要采取的操作:

require 'filewatcher'

FileWatcher.new("config/routes.rb").watch() do |filename, event|
  if(event == :changed)
    your_rake_task
  end
  if(event == :delete)
    # ...
  end
  if(event == :new)
    # ...
  end
end

答案 1 :(得分:0)

rails 4.2.1

# development.rb
require 'rake'
Rails.application.configure do
#...
  Rails.application.load_tasks
  # code executes on routes change
  ActionDispatch::Reloader.to_prepare do
    Rails.application.reload_routes!

    if JsRoutes.assert_usable_configuration!
      Rake::Task['js_routes:generate'].reenable
      Rake::Task['js_routes:generate'].invoke
    end
  end
#...
end

基于https://stackoverflow.com/a/27046271/749477