如何在Rails清扫器中访问命名路由?

时间:2011-05-19 20:53:22

标签: ruby-on-rails routing routes host sweeper

我有一个清扫工,通过在分叉进程中打开网址来重新加热缓存。为这些网址硬编码主机很容易,但我希望它能够根据环境动态变化。

我知道我可以为此设置全局/环境变量,但我真的想使用命名路由。有没有办法做到这一点?

(我应该澄清一下,我已尝试将命名路由放在那里,但它们在运行时无法解析。)

2 个答案:

答案 0 :(得分:3)

我找到的最接近的是:

Rails.application.routes.named_routes.get(:user).defaults

哪个检索:

{:action=>"show", :controller=>"users"}

但你应该将它与你的参数合并:

Rails.application.routes.named_routes.get(:user).defaults.merge({:id => 1})

结果:

{:action=>"show", :controller=>"users", :id=>1}

编辑:

只需添加

include Rails.application.routes.url_helpers 

到你的班级

答案 1 :(得分:0)

我在当前的Rails 3.2 beta中解决了这个问题:

https://github.com/rails/rails/pull/3876