0

我有一个应用程序,我在其中覆盖 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

谢谢,非常感谢任何建议。

4

1 回答 1

0

我已经尝试过在这里其他地方找到的解决方案,但无法让我的应用程序正常工作。(我得到了错误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
于 2013-06-08T20:28:52.897 回答