我有我的代碼的路線,看起來像這樣:問題與友好的URL路由的名稱,而不是ID
map.app 'applications/:title_header', :controller => 'apps', :action => 'show'
我也改變了我的表演方法,在控制器中是這樣的:
@app = App.find_by_title_header(params[:title_header])
如果我輸入applications/title
事情工作正常。如果我在applications/1
(有效身份證件),鍵入它失敗(如預期)
然而,當我試圖使用友好的URL傭工,在這種情況下app_path(@app)
所生成的網址看起來像applications/1
。唯一能讓它工作的方法是放入app_path(@app.title_header)
。看起來好像它只是「知道」這個ID是從應用程序對象中傳出來的,它應該「知道」它現在應該默認傳遞該名稱。我需要改變什麼?
那麼,當你有友好的網址「1234」,這將與ID一致嗎? – Zepplock
你假設應用程序在routes.rb中被列爲資源。即便如此,路由將使用描述所請求url的第一個匹配條目。 – EmFi