Вы всегда можете написать многоцелевой маршрут с регулярным выражением, чтобы захватить детали:
old_content_names_regexp = Regexp.new(%w[
customs_packages_options
corporate
track
links
contact
].join('|'))
map.old_content '/:page_name.html',
:controller => :public,
:action => :redirect_to_home,
:requirements => {
:page_name => old_content_names_regexp
}
Это должно захватывать определенные страницы и перенаправлять их соответственно. Более надежное решение состоит в том, чтобы иметь какую-то таблицу поиска в базе данных, которая проверяется перед обслуживанием любого контента или страниц типа 404.
Редактировать : Для именованных маршрутов это простое изменение:
%w[
customs_packages_options
corporate
track
links
contact
].each do |old_path|
map.send(:"old_#{old_path}",
"/#{old_path}.html",
:controller => :public,
:action => :redirect_to_home,
)
end
В большинстве случаев старые маршруты можно переписать, используя единственный унаследованный маршрут, указанный первым. Также лучше держать таблицу маршрутизации как можно более аккуратной. Второй метод - это скорее опора, чтобы попытаться преодолеть старые маршруты.