【发布时间】:2011-03-15 22:14:35
【问题描述】:
我有一个 Rails 路线设置如下:
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,它会用:id => 'cleveland-indians' 调用teams#show。效果很好。我的问题是url_for 并没有完全按照我的意愿行事。在我的视图/团队/索引视图中,我得到了这种行为:
url_for(:id => "cleveland-indians") # => /teams/cleveland-indians/index
url_for(:id => "cleveland-indians", :action => :show) # => /teams/cleveland-indians/show
当然,第二个的行为方式是我想要的,但我想最后去掉不必要的/show。我不太了解这些助手是如何工作的,但我猜它会知道show 是具有指定 id 的 GET 的默认操作,与路由引擎相同。无论如何,对我来说最好的方法是什么?还是我做错了?
【问题讨论】:
标签: ruby-on-rails rails-routing