我有一个应用程序,我在其中覆盖 Rails 的def to_param
方法以包含模型名称,如下所示:www.myapp.com/1-some-model-name
但是当您访问时,www.myapp.com/1
您会得到具有相同内容的相同页面,但这是两个不同的 URL。进行重定向的最佳方法是什么,以便每次我点击www.myapp.com/1
我去www.myapp.com/1-some-model-name
?
谢谢,非常感谢任何建议。
我有一个应用程序,我在其中覆盖 Rails 的def to_param
方法以包含模型名称,如下所示:www.myapp.com/1-some-model-name
但是当您访问时,www.myapp.com/1
您会得到具有相同内容的相同页面,但这是两个不同的 URL。进行重定向的最佳方法是什么,以便每次我点击www.myapp.com/1
我去www.myapp.com/1-some-model-name
?
谢谢,非常感谢任何建议。
我已经尝试过在这里和其他地方找到的解决方案,但无法让我的应用程序正常工作。(我得到了错误Error 310 (net::ERR_TOO_MANY_REDIRECTS)
)
我做了简单的解决方案,但这个解决方案效果很好。
如果您这样使用to_param
:
def to_param
[id, name.parameterize].join("-")
end
您只需为控制器上的操作添加一些条件,如下所示:
def show
@user = User.find(params[:id])
formal = @user.to_param
if formal != params[:id]
# on routes : match "/user/:id" => "users#show", :as => :show_user
redirect_to show_user_path([@user.id, @user.firstname.parameterize].join("-"))
end
end