【发布时间】:2015-05-17 18:58:30
【问题描述】:
我的 rails 4 应用中有一个 Page 模型。它有一个 :permalink 属性,当有人访问“mysite.com/pages/page-name”时,控制器会找到带有“page-name”作为永久链接的页面,然后显示视图。
pages_controller.rb:
def show
@page = Page.find_by_permalink!(params[:id])
end
网站上线几个月后,我想更改某个页面的永久链接,但我不想丢失所有传入的链接。我想我会这样做。
首先,我会将_colum :new_permalink 添加到 Page 模型中。然后,如果这个 :new_permalink 属性不是 nil 或空白,它将在控制器中拉出一个新页面,如下所示:
def show
@page = Page.find_by_permalink!(params[:id])
if !@page.new_permalink.blank?
@page = Page.find_by_permalink!(@page.new_permalink)
end
end
这可行,但浏览器中的网址仍显示旧网址。我想这可能还不错,但我想我希望它实际上转发到新页面。也许,而不是“new_permalink”,它应该是一个新的 url 并且实际上做了一个重定向?您对此的最佳解决方案是什么?我可以将其设为 301 重定向吗?
【问题讨论】:
标签: ruby-on-rails redirect permalinks