У меня есть модель страницы в моих рельсах 4 приложения. Он имеет атрибут permalink, который используется так, что когда кто-то переходит на «mysite.com/pages/page-name», контроллер находит страницу со «именем страницы» в качестве постоянной ссылки, а затем отображает представление.Обработка перенаправления со старой постоянной ссылки на новую
pages_controller.rb:
def show
@page = Page.find_by_permalink!(params[:id])
end
Через несколько месяцев сайт будучи, я хочу, чтобы изменить постоянную ссылку на определенную страницу, но я не хочу потерять все входящие ссылки. Я думаю, что я это сделаю.
Сначала я добавил add_colum: new_permalink к модели страницы. Тогда, если это: new_permalink атрибут был ничего, но ноль или пустым, он будет тянуть новую страницу в контроллере, как это:
def show
@page = Page.find_by_permalink!(params[:id])
if [email protected]_permalink.blank?
@page = Page.find_by_permalink!(@page.new_permalink)
end
end
Это работает, но адрес в браузере по-прежнему показывает старый URL. Полагаю, это может быть не так уж плохо, но я думаю, что мне бы хотелось, чтобы он действительно перешел на новую страницу. Возможно, вместо «new_permalink» это должен быть новый url и действительно сделать перенаправление? Каким будет ваше лучшее решение для этого? И могу ли я сделать 301 переадресацию?