是否有方便的途径在路由重定向块中访问路由助手?
virtual
修改
这个解决方案有效,但很难看:
get 'new-page' => 'home#new_page', as: :new_page
get 'old-page', to: redirect(:new_page)
# or something like:
get 'old-page', to: redirect { |_, _| new_page_path }
答案 0 :(得分:1)
OP似乎解决了自己的问题,但我想回答这是一个很好的解决方案:
get 'old-page', to: redirect { Rails.application.routes.url_helpers.new_page_path }
如果您厌倦了编写Rails.application.routes.url_helpers
,很容易为此定义一个辅助方法:
Rails.application.routes.draw do
get 'old-page', to: redirect { url_helpers.new_page_path }
get 'another-page', to: redirect { url_helpers.new_page_path }
def url_helpers
Rails.application.routes.url_helpers
end
end
答案 1 :(得分:0)
如果您要定义'新页面的路线'紧接在上面,为什么你需要使用路径助手呢?这不是你所需要的吗?
get 'old-page', to: redirect('new-page')
或者我错过了什么?
如果您需要动态细分,您仍然可以执行以下操作:
get 'old-page/:this_is_dynamic', to: redirect('new-page/%{this_is_dynamic}')