Есть несколько способов обойти это.Вам не нужно создавать две модели для достижения этой цели.Вы можете просто иметь одну модель User и присвоить ей атрибут: role в качестве String, установить для этого значения по умолчанию некоторую известную роль - скажем, «посетитель».
Затем можно рассмотреть возможность установки простого ACL, такого как Cancan
.или decl_auth
.
Это позволит вам контролировать доступ к различным действиям CRUD контроллера - это то, что подразумевается под «authorise_resource» (это RESTful после всего) - конечно, вПри такой настройке администраторы могут видеть больше опций, чем обычные пользователи.
Подход "старой" школы заключается в настройке namespace :admin
, которая будет обрабатываться под /admin/
в вашем приложении.Тем не менее, администраторы и пользователи могут входить через общий путь входа, который вы настроили в devise.
Тем не менее, есть преимущество в том, что у вас есть раздельные модели устройств для администратора и пользователей - их сессии будут полностью разделены, а некоторыеможет считать это «более безопасным».Перехват сеанса до сих пор не достигается тривиально с помощью подхода «одна модель + роли».