scope est un peu complexe, mais fournit plus d'options pour affiner exactement ce que vous voulez faire.
scope prend en charge trois options: module, path et as . Si vous voyez la portée avec toutes ses options, ce sera exactement la même chose que l'espace de noms.
En d'autres termes, les itinéraires générés par
namespace :admin do
resources :posts
end
est le même que
scope module: 'admin', path: 'admin', as: 'admin' do
resources :posts
end
En d'autres termes, nous pouvons dire qu'il n'y a pas d'options par défaut pour la portée par rapport à l'espace de noms. namespace ajoute toutes ces options par défaut. Ainsi, en utilisant la portée, nous pouvons affiner les routes selon les besoins.
Si vous examinez en profondeur le comportement par défaut de la portée et de l' espace de noms , vous constaterez que la portée par défaut ne prend en charge que : l' option de chemin , où l' espace de noms prend en charge trois modules d' options , le chemin et comme par défaut.
Pour plus d'informations, veuillez consulter un doc namespace-and-routing .