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

Ruby on rails 如何在Rails清扫器中访问命名路由?,ruby-on-rails,routing,routes,host,sweeper,Ruby On Rails,Routing,Routes,Host,Sweeper,我有一个清扫器,它通过在分叉进程中打开URL来重新加热缓存。为这些URL对主机进行硬编码很容易,但我希望它能够根据环境进行动态更改 我知道我可以为此设置全局/环境变量,但我确实希望使用命名路由。有没有办法做到这一点 (我应该澄清,我只是尝试将命名路由放入其中,但它们在运行时无法解析。)我找到的最接近的路由是: Rails.application.routes.named_routes.get(:user).defaults 其中检索: {:action=>"show", :control

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

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


(我应该澄清,我只是尝试将命名路由放入其中,但它们在运行时无法解析。)

我找到的最接近的路由是:

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 

对于您的班级

我在当前的Rails 3.2测试版中修复了这个问题:


谢谢,这在其他情况下可能很有用,但对于这一点,我确实需要协议、主机、端口等。