Как перевести объявление определенного ресурса 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
Надеюсь, это поможет вам завершить миграцию вовремя!
;)