Как я могу получить доступ к именованным маршрутам в Rails Sweeper?
У меня есть уборщик, который нагревает кэш, открывая URL-адреса в разветвленных процессах. Достаточно просто запрограммировать хост для этих URL, но я хочу, чтобы он динамически изменялся в зависимости от среды.
Я знаю, что могу установить для этого глобальные переменные / переменные среды, но мне бы очень хотелось использовать именованные маршруты. Есть какой-либо способ сделать это?
(Я должен уточнить, что я пытался просто поместить туда именованные маршруты, но они не разрешаются во время выполнения.)
2 ответа
Решение
Ближайшее, что я нашел, это:
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: