2011-07-02 94 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