使用rails 4.2.1
。在routes.rb更新上調用rake任務?
我想每config/routes.rb
文件保存調用一個rake
任務。我會如何去做這件事?
注意:rake
任務確實需要rails
環境。即它具有task :task_name => :environment do #...
的性質。
使用rails 4.2.1
。在routes.rb更新上調用rake任務?
我想每config/routes.rb
文件保存調用一個rake
任務。我會如何去做這件事?
注意:rake
任務確實需要rails
環境。即它具有task :task_name => :environment do #...
的性質。
看看filewatcher寶石。
您可以定義取決於什麼樣的變化採取行動,以指定的文件(或目錄)由:
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
在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
像'警衛'我猜 – apneadiving
怎麼跟這個問題呢? –
@AndreyDeineko尚未解決。我一直認爲'rails'本身檢測到對'routes.rb'文件的改變,並且運行着類似於'Rails.application.reload_routes!'的東西。我想找到調用'reload_routes!'的函數,並擴展它來運行我的'rake'任務。沒有運氣。 – Derek