我有一个应用程序,我正在覆盖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
?
谢谢,非常感谢任何建议。
答案 0 :(得分:0)
我已尝试找到here和elsewhere的解决方案,但无法使我的应用正常运行。 (我收到错误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