1

Создание небольшого сайта бронирования. Есть users (кто залогинится и работает с сайтом), и есть guests, которым присваивается rooms. users может быть (есть?) guests, но не все guests также являются users.Rails Одиночное наследование таблицы (STI) с моделью пользователя

Мой первоначальный наклон был установить отношения belongs_to/has_one между user & guest но, возможно, STI будет работать здесь? Будучи пользователями &, гости имеют first_name, last_name, email и т. Д. Имеет смысл настроить такую ​​модель, чтобы, например, user и guest оба наследовали от person?

я сверну свою собственную упрощенную аутентификацию, так что только дополнительные поля user, вероятно, являются password_digest, roles_mask и icon_color.

Любые предложения? Я только спрашиваю, потому что вещи могут стать хитрыми вокруг аутентификации, авторизации & whatnot.

Цените любые идеи/советы!

+0

Я бы с 'has_one' здесь. –

+0

Я бы пошел с Devise с фактическими разными моделями для пользователей и гостей –

ответ

0

Простейшим подходом здесь было бы, как предполагается, придерживаться ИППП. Вы можете, например, установить одну модель deviseUser, а также применить ACL с CanCan и определить роли для своих пользователей.

CanCan Способность spec определяет, какие ресурсы доступны, а какие нет. Преимущество в том, что пользователи могут быть гостями, и в зависимости от того, как вы настраиваете ACL, гостям может быть отказано в доступе admin.

Однако предложение Джесси о двух разных моделях Devise также является хорошей идеей, так как это гарантирует, что их сеансы отделены друг от друга. Это более просто реализовать, так как вы можете соответствующим образом настроить ACL для конкретного пользователя и гостевой ACL.

https://github.com/ryanb/cancan

Смежные вопросы