我正在尝试让我的应用程序显示以下网址: 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应用程序:)
* 编辑 :第一部分实际上是使用我粘贴的代码片段,我仍然需要修复第二部分。
答案 0 :(得分:3)
这是因为所有路由都确定应该处理请求的操作。它没有进行任何处理。
通过ModelsController
操作查看show
,您会看到查找可能只使用params[:id]
- 如果您希望查找依赖params[:name]
1}}然后你应该改变它。
答案 1 :(得分:3)
`match '/:id/:name' => 'models#show', :as => :show_model'
在你的models / show.html.erb代码中,
<%=link_to "Show", show_model_path(:id => 2, :name => "some name")
有效吗?