Можно ли создать этот маршрут перенаправления в Rails?
Можно ли сделать перенаправление в файле маршрутов приложения Rails?
В частности, я хотел бы переслать /j/e
в /javascripts/embed.js
В настоящее время единственный способ, которым я могу это сделать, - создать контроллер j
с помощью метода e
, который перенаправляет на него.
Ответы
Ответ 1
Предполагая версию рельсов до 3.
Вы можете создать новый RedirectController
или отбросить одну функцию в существующем контроллере, чтобы сделать что-то вроде следующего:
map.js_embed '/j/e',
:controller => :redirect_controller,
:action => :some_function,
:path => "embed"
Тогда ваша функция будет делать это:
def some_function
if params[:path]
redirect_to "/javascripts/#{params[:path]}.js"
end
end
или что-то для этого эффекта.
Ответ 2
В Rails 4 и 5: (спасибо @dennis)
get '/stories', to: redirect('/posts')
В Rails 3 вы можете перенаправить внутрь файла rout.rb.
match "/posts/github" => redirect("http://github.com/rails.atom")
Ответ 3
Корневой путь
Вы можете перенаправить корневой путь на внешний сайт:
root to: redirect('https://www.lucascaton.com.br/en')