Я использую Rails 2.2.2 со старыми школьными маршрутами (т.е. я не RESTful), и я замечаю странное поведение, исходящее из метода Rails link_to. Вот мой звонок:
link_to("my description", { :controller => controller, :action => action }, :id => "html_id")
Я хочу, чтобы метод выдал "/ controller / action", но вместо этого я получаю "/ controller / action / id". Это происходит только тогда, когда link_to вызывается при обработке запроса URL-адреса «/ controller / action / id», а контроллер и действие такие же, как те, которые я передаю link_to. Пример:
- Я нахожусь на странице "/ controller / action", и ссылки на этой странице на "/ controller / action" правильно указывают на "/ controller / action"
- Я нажимаю ссылку на «/ controller / action / id», и ссылки на новой странице, которые должны указывать на «/ controller / action», теперь указывают на «/ controller / action / id», где id такой же в качестве идентификатора, который был в предыдущем запросе.
Мне кажется, что-то запуталось. В запросе есть идентификатор, который запускает вызов link_to, но я не хочу, чтобы на него ссылались, и я явно не передаю параметр id. Для справки, вот мои старые школьные маршруты по умолчанию:
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
Есть идеи, почему это происходит, и, что более важно, как это остановить? Большое спасибо.