我有我的代码的路线,看起来像这样:问题与友好的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