我有一个清扫器,它通过在分叉进程中打开 url 来重新加热缓存。为这些 url 硬编码主机很容易,但我希望它根据环境动态更改。
我知道我可以为此设置全局/环境变量,但我真的很想使用命名路由。有没有办法做到这一点?
(我应该澄清一下,我已经尝试将命名路由放在那里,但它们在运行时无法解析。)
我有一个清扫器,它通过在分叉进程中打开 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 beta 中修复了这个问题: