我在URL中有记录的ID和名称。
def to_param
"#{id} #{name}".parameterize
end但是任何名字都可以在URL中使用。我可以执行以下操作,并且它是有效的
www.site.com/records/ID-anything-here-works如何将ID-anything重定向到ID-name
下面是一个例子。
假设我有一个"product“模型和一条名为”鞋“、id为"6”的记录。
url如下所示
products/6-shoe但是这个URL也可以工作
products/6-eiufwojfeowjfowef如何才能使第二个URL重定向到第一个URL?
我正在处理show action:
def show
@website = Website.find(params[:id])
end发布于 2017-01-29 23:16:07
试试这个:
def show
@website = Website.find(params[:id])
unless params[:id] == @website.to_param
redirect_to @website, status: 301
end
end它会像现在一样查找实例(忽略名称),但随后它会将用户重定向到具有当前名称的正确路径。
注意重定向中的301状态,这对SEO很好,每个网站只有一个实际的URL。
https://stackoverflow.com/questions/41919627
复制相似问题