У меня есть следующие маршруты.rails3 route issue
pota.resources :on_k,
:as => ':klass',
:path_prefix => 'pota/klass',
:controller => 'main'
Когда я реки маршруты это то, что я получаю для шоу-методы:
pota_on_k GET /pota/klass/:klass/:id(.:format)
{:action=>"show", :controller=>"pota/main"}
Над кода отлично работает в рельсах 2.x. Однако, если я использую rails3, тогда я получаю следующую ошибку:
ActionController::RoutingError: No route matches
{:action=>"show", :controller=>"pota/main", :klass=>"vehicle/door", :id=>1}
Обратите внимание, что я передаю «автомобиль/дверь» как: класс. Если я передаю стандартную модель, например: klass => 'pet', тогда она отлично работает. Однако, если я передаю вложенное имя модели, например: klass => 'vehicle/door', тогда я получаю ошибку маршрута в rails3.
Я думаю, это потому, что у меня есть значение «/». Я могу решить это, имея регулярное выражение, но я могу также передать: klass, который не является вложенным.
Об одном классе, как Vehicle :: Автомобиль я
Vehicle::Car.underscore #=> vehicle/car
"vehicle/car".camelize.constantize #=> Vehicle::Car
Это подчеркивание и camelize/constantize с другой стороны делает его легче передать вложенное имя класса.
Любая идея о том, как это сделать для рельсов3?