Как мне указать значение по умолчанию для маршрута рельсов 2.3? - PullRequest
2 голосов
/ 24 марта 2011

В моем приложении Rails 2.3.11 я хочу указать, что формат по умолчанию для маршрута: xml.Согласно документации я могу сделать это, используя :defaults

map.connect '/myroute', :controller => 'mycontroller',
                        :action => 'myaction',
                        :defaults => {:format => :xml}

В документации конкретно сказано, что это должно работать:

Вы также можете определить другие значения по умолчаниюв маршруте, предоставив хэш для опции: defaults.Это относится даже к параметрам, которые явно не определены в других местах маршрута.

Но если я это сделаю, то получу эту ошибку:

/Users/simon/myproject/vendor/rails/actionpack/lib/action_controller/routing/builder.rb:107:in `assign_route_options':
format: No matching segment exists; cannot assign default (ArgumentError)

Я вижу, что билет на маяк был поднят по этому поводу;респондент отмечает, что он работает для ресурсов, а не для именованных маршрутов;администратор неправильно пометил его как исправленный, потому что он проверял его на ресурсах.Хо гул.

В других местах предлагается сделать это так:

map.connect '/myroute', :controller => 'mycontroller',
                        :action => 'myaction',
                        :format => :xml

, но потом, если я проверю это

assert_generates '/myroute', :controller => 'mycontroller',
                             :action => 'myaction'

, мне скажут, что нет маршрутасовпадения :controller => 'mycontroller', :action => 'myaction' - Я должен указать формат вручную, чтобы он не был по умолчанию.

Как указать значение по умолчанию в маршруте rails 2.3?Нужно ли им заставить их открыть билет и на самом деле исправить ошибку?Есть ли надежда, что это произойдет, когда выйдет Rails 3?

1 Ответ

0 голосов
/ 26 марта 2011

Хм, это довольно странно.Я использовал: по умолчанию хэш в названном маршруте, и это сработало для меня.Можете ли вы попробовать использовать названный маршрут вместо этого и посмотреть, работает ли он?

map.myroute '/myroute', :controller => 'mycontroller',
                    :action => 'myaction',
                    :defaults => {:format => :xml}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...