Я не могу понять, в чем разница между пространством имен и областью видимости в маршрутизации ruby-on-rails 3.
Может кто-нибудь объяснить?
namespace "admin" do
resources :posts, :comments
end
scope :module => "admin" do
resources :posts, :comments
end
ruby-on-rails
never_had_a_name
источник
источник
примеры всегда помогают мне, так что вот пример:
даст нам следующие маршруты:
Использование области видимости ...
Дадут нам:
Вот хорошее чтение по этому поводу: http://edgeguides.rubyonrails.org/routing.html#controller-namespaces-and-routing
источник
от направляющих рельсов
«Область пространства имен автоматически добавит,
:as
а также префиксы:module
и:path
».так
такой же как
источник
И область действия, и пространство имен охватывают набор маршрутов для заданных параметров по умолчанию.
За исключением того, что нет никаких вариантов по умолчанию для сферы , так и для пространства имен
:path
,:as
,:module
,:shallow_path
и:shallow_prefix
параметры по умолчанию все с именем пространства имен.Доступные параметры для области и пространства имен соответствуют параметрам match .
источник
scope немного сложен, но предоставляет больше возможностей для точной настройки того, что вы хотите сделать.
scope поддерживает три варианта: модуль, путь и как . Если вы видите область со всеми ее параметрами, она будет точно такой же, как и пространство имен.
Другими словами, маршруты, созданные
такой же как
Другими словами, мы можем сказать, что нет параметров по умолчанию для области видимости по сравнению с пространством имен. пространство имен добавляет все эти параметры по умолчанию. Таким образом, используя область видимости, мы можем более точно настроить маршруты по мере необходимости.
Если вы глубоко изучите поведение области и пространства имен по умолчанию, вы обнаружите, что эта область по умолчанию поддерживает только параметр : path , где as пространство имен поддерживает три параметра: module, path и as по умолчанию.
Для получения дополнительной информации см. Doc namespace-and-routing .
источник