url_for и маршрут по умолчанию в Rails 3 - PullRequest
0 голосов
/ 15 марта 2011

У меня есть маршрут рельсов, подобный:

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 не совсем делает то, что я хочу.В моих представлениях / командах / индексах я получаю следующее поведение:

url_for(:id => "cleveland-indians") # => /teams/cleveland-indians/index
url_for(:id => "cleveland-indians", :action => :show) # => /teams/cleveland-indians/show

Конечно, второе ведет себя так, как я хочу, но я бы хотел избавиться от ненужного /show вконец.Я не знаю много о том, как работают эти помощники, но я бы предположил, что он знал бы, что show было действием по умолчанию для GET с указанным идентификатором, так же как и механизм маршрутизации.В любом случае, как мне лучше позаботиться об этом?Или я просто все делаю неправильно?

1 Ответ

1 голос
/ 15 марта 2011

строка 'resources' уже должна содержать маршруты, которые вы, вероятно, хотите, поэтому вы можете просто удалить первую строку 'match'.

Обратите внимание, что вы также можете использовать 'groups_path', 'team_path (' clevelandиндейцы ")" вместо "url_for".

...