Я разбираюсь в Rails и у меня есть несколько вопросов высокого уровня, которые обычно касаются пользователей, их роли и того, как структурировать или выложить новое приложение Rails. Я на самом деле просто ищу разные идеи (или проверки необразованных догадок, которые я попробовал ниже) и их плюсы и минусы.
Новый проект будет иметь пользователей , администраторов и, назовем их, заинтересованных лиц .
Каждый из них, очевидно, люди, и каждый из них должен войти в систему и будет иметь разные «списки». Я знаю, что для этого есть много способов, но я ищу способ "Rails", чтобы использовать как можно больше преимуществ, так называемых "Convention Over Configuration".
- admin обладает сверхспособностями и может видеть и ходить куда угодно
- заинтересованные стороны могут вносить изменения только в свои области сайта
- пользователи (возможно, есть более подходящее название, так как ВСЕ роли в некотором смысле
«пользователи») могут только просматривать контент
созданный заинтересованными сторонами и
при желании прокомментируйте их.
Итак, как с этим справиться ...
Логин: использовать одну форму входа, а затем назначать разные списки? или отправлять пользователей одному логину и админам, другому и тд ...? за и против? Я думаю, что поддерживать один класс User было бы проще, чем разделять их ... но как насчет безопасности?
Маршруты:
Чтобы избежать вложенных маршрутов (что многие советуют против), я бы хотел, чтобы заинтересованные лица ТОЛЬКО видели свой «кол». Поэтому, когда они входят в систему, им сразу же предоставляется их маленькая область. Интересно, если бы вместо / заинтересованных лиц / заинтересованных лиц / ставок / новых, возможно, я мог бы просто иметь / ставок / новых. Как это обрабатывается? В пользователь? В сессии? Cookie?
А что насчет админов? Я видел примеры этого броска, перемещенного в его собственное «пространство имен» (я думаю?) , где все задачи администратора начинаются с / admin / ... Это часто встречается? Или есть лучший способ?
И, наконец, что происходит, когда более высокий бросок (admin
или stakeholder
) хочет «поделиться» представлением или контроллером, или любым кодом в этом отношении, используемым меньший бросок (user
)? если admin
имеет свои собственные контроллеры, модели и виды под admin/
, тогда уместно ли использовать /stake/new
или нам также нужно поддерживать /admin/stake/new
?
Извините за путаницу и многословие. Любая помощь, или примеры / документы, будет принята с благодарностью ...