Следующее кажется, что я добился некоторого прогресса в правильном направлении; это, по крайней мере, обеспечивает идентичную готовую функциональность устройства как для пользователей, так и для администраторов с настраиваемой маршрутизацией,
match 'admin', :controller => 'admin'
namespace :admin do
# to be updated later...
end
devise_for :users
#devise_for :admins, :path => "admin" # this works but uses the default
# Devise::SessionController
devise_for :admins,
:controllers => {
:sessions => "admin/sessions",
:passwords => "admin/passwords",
:registrations => "admin/registrations" }, :path => "admin",
:skip => [:sessions, :passwords, :registrations] do
get 'admin/sign_in' => 'admin/sessions#new', :as => :new_admin_session
post 'admin/sign_in' => 'admin/sessions#create', :as => :admin_session
get 'admin/sign_out' => 'admin/sessions#destroy', :as => :destroy_admin_session
get 'admin/sign_up' => 'admin/registrations#new', :as => :new_admin_registration
get 'admin/account' => 'admin/registrations#edit', :as => :edit_admin_registration
post 'admin/account' => 'admin/registrations#create', :as => :admin_registration
get 'admin/cancel' => 'admin/registrations#cancel', :as => :cancel_admin_registration
put 'admin/account' => 'admin/registrations#update'
delete 'admin/account' => 'admin/registrations#destroy'
post 'admin/password' => 'admin/passwords#create', :as => :admin_password
get 'admin/password/new' => 'admin/passwords#new', :as => :new_admin_password
get 'admin/password/edit' => 'admin/passwords#edit', :as => :edit_admin_password
put 'admin/password' => 'admin/passwords#update'
end
Идеи?
Предостережение: в этом примере я включил модуль :registerable devise в модель администратора просто для тестирования во время разработки. Маршрут sign_up
в конечном итоге будет удален.
Многочисленные поиски привели (обратите внимание на каламбур) следующую запись в блоге, которая кажется чтобы указать, что переопределение контроллера устройства требует повторного сопоставления всех указанных им «HTTP-команд», как это было; это имеет смысл, так как несопоставленные будут обрабатываться контроллером устройства по умолчанию.
Если у кого-то больше опыта работы с несколькими моделями разработки и раздельным подходом к администрированию, мне будут очень интересны ваши мысли и предложения!
person
Michael De Silva
schedule
13.05.2011