我正在命名空间中制作自定义管理面板" admin"。
我有资源"课程"在该命名空间内。
但我还想要一条通往"课程的路线。那不在那个命名空间中:
例如:BOTH localhost:3000/admin/courses
和localhost:3000/courses
如果这需要不同的控制器,那就没关系。
我担心的是,如果我有两条相同路线的资源,它就不会真的干。
namespace admin do
resources :courses
end
只是
resources :courses
有没有办法在命名空间和没有命名空间之间共享一个资源,或者是上面的示例?
答案 0 :(得分:5)
我不确定我明白你的意思,但是
namespace :something
实际上是scope :something, module: :something, as: :something
scope :something
会将/something/
添加为网址前缀scope module: :something
会将/something
添加为控制器前缀(控制器将在controlelrs/something/the_controller.rb
下提取scope as: :something
会将something
添加为路径助手的前缀现在在你的路线中同时拥有它们是完全没法的
resources :courses
# Will generate "/courses/", "/courses/new", "/courses/1/edit", ...
# And will point to `controllers/courses_controller.rb`
namespace :admin do
resources :courses
end
# Will generate "/admin/courses/", "/admin/courses/new", "/admin/courses/1/edit", ...
# And will point to `controllers/admin/courses_controller.rb`
这会回答你的问题吗?
答案 1 :(得分:5)