Saya tidak mengerti apa perbedaan antara namespace dan ruang lingkup dalam perutean ruby-on-rails 3.
Bisakah seseorang menjelaskan?
namespace "admin" do
resources :posts, :comments
end
scope :module => "admin" do
resources :posts, :comments
end
ruby-on-rails
never_had_a_name
sumber
sumber
Contoh selalu membantu saya, jadi inilah contohnya:
akan memberi kita rute berikut:
Menggunakan ruang lingkup ...
Akan memberi kami:
Berikut adalah beberapa bacaan bagus tentang subjek: http://edgeguides.rubyonrails.org/routing.html#controller-namespaces-and-routing
sumber
dari panduan rel
"Ruang lingkup namespace akan secara otomatis menambahkan
:as
serta:module
dan:path
prefiks."begitu
sama dengan
sumber
Baik cakupan maupun namespace mencakup sekumpulan rute ke opsi default yang diberikan.
Kecuali bahwa tidak ada pilihan default untuk lingkup , dan untuk namespace
:path
,:as
,:module
,:shallow_path
dan:shallow_prefix
pilihan semua default ke nama namespace.Opsi yang tersedia untuk cakupan dan namespace sesuai dengan yang cocok .
sumber
Scope agak rumit, tetapi menyediakan lebih banyak opsi untuk menyesuaikan dengan tepat apa yang ingin Anda lakukan.
lingkup mendukung tiga opsi: modul, jalur dan sebagai . Jika Anda melihat cakupan dengan semua opsi itu, itu akan persis sama dengan namespace.
Dengan kata lain, rute dihasilkan oleh
sama seperti
Dengan kata lain, kita dapat mengatakan bahwa tidak ada opsi default untuk cakupan dibandingkan dengan namespace. namespace menambahkan semua opsi ini secara default. Dengan demikian, dengan menggunakan scope, kami dapat lebih menyempurnakan rute sesuai kebutuhan.
Jika Anda melihat lebih dalam cakupan dan perilaku default namespace , Anda akan menemukan bahwa cakupan secara default hanya mendukung : opsi jalur, sedangkan namespace mendukung modul tiga opsi , jalur, dan sebagai default.
Untuk info lebih lanjut, lihat doc namespace-and-routing .
sumber