【发布时间】:2014-11-20 08:22:31
【问题描述】:
我有一个要求,我必须在每个 url 中附加 abc/admin。例如
http://0.0.0.0:3000/abc/admin/admins/sign_in # USING ADMIN AS DEVISE MODEL
http://0.0.0.0:3000/abs/admin/products
http://0.0.0.0:3000/abs/admin/products/:id
http://0.0.0.0:3000/abs/admin/categories
等等。现在我尝试了
scope "abc/admin" do
resources :products, :categories
end
它会创建一些URL 例如:
products GET /abc/admin/products(.:format) products#index
POST /abc/admin/products(.:format) products#create
new_role GET /abc/admin/products/new(.:format) products#new
对于我尝试使用的Admin 模型
scope "abc/admin" do
devise_for :admins, :controllers => {:sessions=>"admin/sessions", :registrations=>'admin/registrations'}
end
它还创建URL like:
admin_registration POST /abc/admin/admins(.:format) admin/registrations#create
new_admin_registration GET /abc/admin/admins/sign_up(.:format) admin/registrations#new
现在new_admin_registration_path 重定向到http://0.0.0.0:3000/admins/sign_up 不考虑范围。我不知道如何在 URL 中为设计以及其他控制器实现范围参数。
【问题讨论】:
-
你可以像
namespace "abc/admin" do devise_for :admins, :controllers => {:sessions=>"admin/sessions", :registrations=>'admin/registrations'} end一样使用namespace一次尝试`
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 devise routes