Метод
map.namespace
просто устанавливает некоторые общие параметры для маршрутов внутри своего блока. Используется метод with_options
:
# File actionpack/lib/action_controller/routing/route_set.rb, line 47
def namespace(name, options = {}, &block)
if options[:namespace]
with_options({:path_prefix => "#{options.delete(:path_prefix)}/#{name}", :name_prefix => "#{options.delete(:name_prefix)}#{name}_", :namespace => "#{options.delete(:namespace)}#{name}/" }.merge(options), &block)
else
with_options({:path_prefix => name, :name_prefix => "#{name}_", :namespace => "#{name}/" }.merge(options), &block)
end
end
Таким образом, можно использовать метод with_options
напрямую вместо namespace
:
map.with_options(:path_prefix => "yournewprefix", :name_prefix => "admin_", :namespace => "admin/" ) do |admin|
admin.resources :admin_users
# ....
end
И вы можете продолжать использовать маршруты так же, как и раньше, но префиксом будет «ваш новый префикс» вместо «admin»
admin_admin_users_path #=> /yournewprefix/admin_users