2010-05-04 11 views
1

У меня есть именованный маршрут:Как сделать параметры необязательными при использовании маршрутов Rails с именем?

map.find '/find/:category/:state/:search_term/:permalink', :search_term=>nil, :controller=>'find', :action=>'show_match' 

и следующий URL соответствует его & работает OK:

http://localhost:3000/find/cars/ca/TestSeachTerm/bumpedupphoto-test 

но если я вынимаю 2-й последний параметр, т.е. «TestSearchTerm», то маршрут не удается чтобы получить соответствие, хотя у меня есть: search_term => nil на маршруте.

http://localhost:3000/find/cars/ca//bumpedupphoto-test 

Может ли кто-нибудь увидеть, что я делаю неправильно? Пытаюсь решить это в течение нескольких дней.

Спасибо!

ответ

1

Добавить это после текущего маршрута:

map.find '/find/:category/:state/:permalink', :controller=>'find', :action=>'show_match' 
+0

Спасибо за это. Когда я помещаю это как маршрут, рельсы, похоже, не могут решить, какой маршрут использовать: У вас есть нулевой объект, если вы этого не ожидали! Ошибка при оценке nil.has_key? – Jason

+0

какая строка кода дает вам это сообщение? – Zepplock