У меня есть приложение Rails, которое использует контроллер static_pages для отображения статических страниц в приложении, и я ищу лучшее решение для выполнения перенаправления 301 определенных страниц — например, /dentist перенаправляется на < strong>/дантист-лондон
Я использую Rails 2.3.8.
Контроллер static_pages выглядит так:
class StaticPagesController < ApplicationController
def display
if static_page_exists?
render_static_page
else
raise ActiveRecord::RecordNotFound
end
end
protected
def static_page_exists?
File.exists? template_path
end
def template_path
File.join('app', 'views', 'static_pages', file_name)
end
def render_static_page
render :template => File.join('static_pages', file_name)
end
def file_name
File.join(params[:path]) + '.html.haml'
end
end
Этот контроллер сопоставляет страницы с именем статической страницы и отображает содержимое.
Маршрут выглядит так:
map.static_page '*path', :controller => 'static_pages', :action => 'display'
Я могу переименовать файл страницы app/views/static_pages/dentist.html.haml в app/views/static_pages/dentist-london.html.haml, однако я не уверен как выполнить перенаправление 301 для этого изменения.
Кто-нибудь может дать совет?
Я думаю, что включил весь соответствующий код, но не стесняйтесь спрашивать, если что-то отсутствует/не имеет смысла.
заранее спасибо