Как перевести объявление определенного ресурса root из Rails 2 в Rails 3?

Я переношу приложение из Rails 2.3.5 в Rails 3.2.8. У меня есть этот маршрут из приложения Rails 2, которое вызывает у меня головную боль:

  map.resources :soumission_vt,
                :path_prefix => "/soumission/VT/:page_id", :as => 'police/:action/:id',
                :requirements => {:page_id => /\S+/}

который генерирует следующее:

soumission_vt_index GET    /soumission/VT/:page_id/police/:action/:id(.:format)               {:controller=>"soumission_vt"}
                    POST   /soumission/VT/:page_id/police/:action/:id(.:format)               {:controller=>"soumission_vt"}
new_soumission_vt   GET    /soumission/VT/:page_id/police/:action/:id/new(.:format)           {:controller=>"soumission_vt"}
edit_soumission_vt  GET    /soumission/VT/:page_id/police/:action/:id/:id/edit(.:format)      {:controller=>"soumission_vt"}
soumission_vt       GET    /soumission/VT/:page_id/police/:action/:id/:id(.:format)           {:controller=>"soumission_vt"}
                                    PUT    /soumission/VT/:page_id/police/:action/:id/:id(.:format)           {:controller=>"soumission_vt"}
                    DELETE /soumission/VT/:page_id/police/:action/:id/:id(.:format)           {:controller=>"soumission_vt"}

Я перевел это так в Rails 3:

  scope '/soumission/VT/:page_id', :constraints => {:page_id => /\S+/} do
    resources :soumission_vt, :as => 'police/:action/:id'
  end

но я получаю неверное имя маршрута: 'Police/: Action/: ID_index'...

Так есть ли способ воспроизвести эти маршруты в Rails 3?

Спасибо!

1 ответ

После одной попытки мне удалось заставить его работать со следующими строками кода:

scope '/soumission/VT/:page_id' do
    get 'police/new', controller: :soumission_vt, action: :new, as: :new_soumission_vt
end

Надеюсь, это поможет вам завершить миграцию вовремя!

;)

Другие вопросы по тегам