我有一個清理程序,通過在分叉進程中打開URL來重新加熱緩存。對這些URL的主機進行硬編碼是很容易的,但我希望它可以根據環境動態變化。如何在Rails清掃器中訪問指定路線?
我知道我可以爲此設置全局/環境變量,但我真的很想使用命名路線。有沒有辦法做到這一點?
(我要澄清,我試過只是把指定的路線在那裏,但他們沒有在運行時解決。)
我有一個清理程序,通過在分叉進程中打開URL來重新加熱緩存。對這些URL的主機進行硬編碼是很容易的,但我希望它可以根據環境動態變化。如何在Rails清掃器中訪問指定路線?
我知道我可以爲此設置全局/環境變量,但我真的很想使用命名路線。有沒有辦法做到這一點?
(我要澄清,我試過只是把指定的路線在那裏,但他們沒有在運行時解決。)
我發現的最接近的是:
Rails.application.routes.named_routes.get(:user).defaults
它檢索:
{:action=>"show", :controller=>"users"}
但你與PARAMS,你應該把它合併:
Rails.application.routes.named_routes.get(:user).defaults.merge({:id => 1})
結果:
{:action=>"show", :controller=>"users", :id=>1}
編輯:
只需添加
include Rails.application.routes.url_helpers
到類
我在當前的Rails解決了這個3.2測試版:
謝謝,這可能會在其他情況下有用,但對於這一個我真的需要的協議,主機,端口等 – glortho 2011-05-19 23:26:08
剛編輯,希望這個答案更好 – apneadiving 2011-05-20 16:29:11
放棄了可能,但只是重新訪問。謝謝! – glortho 2012-01-08 22:43:57