Маршрутизация с необязательным параметром
я добавил в файл маршруту:
map.show_book "/show_book/:name/year/:year", :controller => "book", :action => "show_version"
я добавил:
map.show_book "/show_book/:name", :controller => "book", :action => "show_version"
показать последнюю книгу без указания года.
но он не работает, он не может найти маршрут в "show_book/NAME", если я не пройду год.
У вас есть идеи, почему это не работает ?
спасибо !
PS. Я знаю, что могу использовать год в качестве параметра с "?year=XXXX", но я хочу использовать год как часть URL
1 ответов
поместите необязательные части между скобками:
map.show_book "/show_book/:name(/year/:year)", :controller => "book", :action => "show_version"
и удалите второй маршрут.
обновление
вышеуказанный ответ только для рельсов 3 и выше. Инвертирование двух определений маршрутов исправило проблему (см. комментарий Алессандро ниже).