Вопрос

У меня есть маршрут 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 И это позвонит 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 Было ли действие по умолчанию для получения указанного идентификатора, так же, как и двигатель маршрутизации. В любом случае, как мне лучше всего позаботиться об этом? Или я просто делаю все неправильно?

Это было полезно?

Решение

Строка «Ресурсы» уже должна предоставить вам маршруты, которые вы, вероятно, хотите, чтобы вы могли просто удалить первую линию «совпадение».

Обратите внимание, что вы также можете использовать «teams_path», 'team_path ("cleveland-indians") "вместо" url_for ".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top