我有一条铁路线设置如下:
match ':controller/:id/:action'
# match 'teams/:id' => "teams#show" # doesn't have any additional effect, which makes sense to me
resources :teams, :only => [:index, :show]
这样我可以说/teams/cleveland-indians
,它会teams#show
与:id => 'cleveland-indians'
联系。效果很好。我的问题是url_for
并不能完全符合我的要求。在我的views / teams / index视图中,我得到了这样的行为:
url_for(:id => "cleveland-indians") # => /teams/cleveland-indians/index
url_for(:id => "cleveland-indians", :action => :show) # => /teams/cleveland-indians/show
当然,第二个行为符合我的要求,但我想在最后摆脱不必要的/show
。我不太了解这些帮助程序是如何工作的,但我已经猜到它会知道show
是具有指定id的GET的默认操作,与路由引擎一样。无论如何,对我来说最好的方法是什么呢?或者我只是做错了吗?
答案 0 :(得分:1)
'resources'行应该已经为您提供了您可能想要的路线,因此您可以删除第一个'匹配'行。
请注意,您也可以使用'teams_path','team_path(“cleveland-indians”)'代替'url_for'。