我在URL中有记录的ID和名称。
def to_param
"#{id} #{name}".parameterize
end
但是任何名称都可以在URL中使用。我可以执行以下操作
www.site.com/records/ID-anything-here-works
如何重定向ID-anything
到ID-name
?
这是一个例子。
假设我有一个“产品”模型和一条记录,其名称为“ shoe”,标识为“ 6”。
网址看起来像这样
products/6-shoe
但是这个URL也可以
products/6-eiufwojfeowjfowef
如何使第二个URL重定向到第一个?
我正在使用表演动作:
def show
@website = Website.find(params[:id])
end
试试这个:
def show
@website = Website.find(params[:id])
unless params[:id] == @website.to_param
redirect_to @website, status: 301
end
end
它会像现在一样查找实例(忽略名称),但随后会将用户重定向到具有当前名称的正确路径。
注意301状态为重定向,这对SEO很有用,每个网站只有一个实际URL。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句