我仍在学习Rails,但面对这个项目:Web解决方案应该由三部分组成——网站、合作伙伴部分和管理面板。合作伙伴和管理面板的部分应作为子目录(客户要求)提供,如下所示:
somesite.com
somesite.com/partners/
somesite.com/admin/
我决定制作三个具有通用模型和业务逻辑的独立应用程序,并使用Passenger和Apache以上述方式部署它们。
数据库中应该有两个模型:Admin
(仅适用于管理员)和User
(相当胖的模型,用户和合作伙伴通用,不同于is_partner
字段)。因为这些模型对所有三个站点都是通用的,所以我决定将它们放在Rails引擎中,然后为每个应用程序使用合适的模型。但是现在我有一个选择合适的身份验证模块的问题。
你能给我一个建议吗?我应该尝试使用一些现有的解决方案,还是最好实现自己的身份验证?或者可能是我对这个项目的整个方法从一开始就错了?
谢谢。
我将使用一个User
模型,因为您不需要复制任何逻辑,并使用三个角色:用户、合作伙伴和管理员,除非管理员与其他用户有很大不同。对于身份验证,我建议使用Devise,它是Rails的首选身份验证系统。为了获得授权,我建议CanCan。
如果您正在寻找一个预先制作的管理界面,请尝试RailsAdmin或ActiveAdmin。RailsAdmin使用简单,易于配置,但不太可自定义,而ActiveAdmin使用起来有点困难,但更可自定义。两者都与设计融为一体。