我在网址中有记录的ID和名称。
def to_param
"#{id} #{name}".parameterize
end
但是任何名称都可以在URL中使用。我可以做以下工作
www.site.com/records/ID-anything-here-works
如何将ID-anything
重定向到ID-name
?
这是一个例子。
我们说我有一个"产品"模型和记录名称"鞋"和一个id" 6"。
网址看起来像这样
products/6-shoe
但此网址也有效
products/6-eiufwojfeowjfowef
我怎样才能使第二个URL重定向到第一个?
我正在使用show action:
def show
@website = Website.find(params[:id])
end
答案 0 :(得分:1)
试试这个:
def show
@website = Website.find(params[:id])
unless params[:id] == @website.to_param
redirect_to @website, status: 301
end
end
它现在正在查找实例(忽略名称),但随后它将用户重定向到具有当前名称的正确路径。
请注意重定向中的301状态,这对SEO很有用,每个网站只有一个实际的URL。