带轨道的自定义路线3.1

时间:2011-07-02 00:36:33

标签: ruby-on-rails

我正在尝试让我的应用程序显示以下网址: example.com/42/jessica-alba 这是我目前的路线(不确定是否正确)

match '/:id/:name' => 'models#show'    

出于某种原因,如果我键入example.com/42/gvkodjgj030,它仍然会向我发送id为42的用户,而不管/

之后的文本

我想要完成的另一件事是让用户的link_to标签指向 example.com/42/jessica-alba ,而不是 example.com/users/ 42

请帮帮我们,这是我的第一个rails应用程序:)

* 编辑 :第一部分实际上是使用我粘贴的代码片段,我仍然需要修复第二部分。

2 个答案:

答案 0 :(得分:3)

这是因为所有路由都确定应该处理请求的操作。它没有进行任何处理。

通过ModelsController操作查看show,您会看到查找可能只使用params[:id] - 如果您希望查找依赖params[:name] 1}}然后你应该改变它。

答案 1 :(得分:3)

你的routes.rb

中的

  `match '/:id/:name' => 'models#show', :as => :show_model'

在你的models / show.html.erb代码中,

  <%=link_to "Show", show_model_path(:id => 2, :name => "some name")

有效吗?