Создание регистрации регистрации - Начинающий пользователь - PullRequest
1 голос
/ 11 сентября 2011

У меня есть поиск в течение пары дней, чтобы найти, если кто-то еще задал или ответил на этот вопрос, и мне не повезло.Это также мой первый вопрос, который я задал для stackoverflow.

Я ищу кого-то, чтобы указать мне правильное направление ...

У меня есть devise setup иотлично работает с двумя моделями - Admin и User.

Мне нужно, чтобы администраторы создали семинар или класс, а пользователи могли зарегистрироваться или зарегистрироваться на семинаре.Я не знаю, стоит ли мне использовать has_many_and_belongs_to_many или has_many: through или есть ли какой-нибудь гем регистрации событий, который мог бы решить эту проблему лучше.

Любые указатели будут с благодарностью.

1 Ответ

2 голосов
/ 11 сентября 2011

Есть несколько способов обойти это.Вам не нужно создавать две модели для достижения этой цели.Вы можете просто иметь одну модель User и присвоить ей атрибут: role в качестве String, установить для этого значения по умолчанию некоторую известную роль - скажем, «посетитель».

Затем можно рассмотреть возможность установки простого ACL, такого как Cancan.или decl_auth.

Это позволит вам контролировать доступ к различным действиям CRUD контроллера - это то, что подразумевается под «authorise_resource» (это RESTful после всего) - конечно, вПри такой настройке администраторы могут видеть больше опций, чем обычные пользователи.

Подход "старой" школы заключается в настройке namespace :admin, которая будет обрабатываться под /admin/ в вашем приложении.Тем не менее, администраторы и пользователи могут входить через общий путь входа, который вы настроили в devise.

Тем не менее, есть преимущество в том, что у вас есть раздельные модели устройств для администратора и пользователей - их сессии будут полностью разделены, а некоторыеможет считать это «более безопасным».Перехват сеанса до сих пор не достигается тривиально с помощью подхода «одна модель + роли».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...