2011-07-02 49 views
2

我试图让我的应用程序,以显示网址如下:example.com/42/jessica-alba 这是我目前的路线线(不知道这是否是正确的)定制路由与导轨3.1

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

出于某种原因,如果我键入example.com/42/gvkodjgj030它仍然会在/

另一件事我试图完成后SHW我id为42的用户,无论是文本是将用户的link_to标记指向example.com/42/jessica-alba i的example.com/users/42

nstead请帮我家伙,这是我第一次的Rails应用程序:)

* 编辑:第一部分实际上是与段我的工作但我仍然需要修复第二部分。

+0

问你的问题的第二部分是一个完全独立的问题,你想知道的两个概念是无关的:) – Gareth

回答

3

在你的routes.rb

`match '/:id/:name' => 'models#show', :as => :show_model' 
在你的模型/ show.html.erb代码

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

运作的?

+0

不,它不起作用。未定义的方法show_model_path:/ – imjp

+0

您可以运行耙路线并告诉我为show_model_path生成哪条路线? – felix

+1

@Felix你忘了link_to的“link_to”部分:) – tybro0103

3

这是因为所有的路由确定哪个动作应该处理请求。它不做任何处理。

看着你ModelsControllershow动作,你会看到查找大概只能使用params[:id] - 如果你想查找依赖于params[:name]则动作是你应该改变它。

+0

嘿Gareth,帮助我在RoR聊天中帮助我?我尝试了你所说的,但它抛出了“无法找到没有ID的模型”错误 – imjp