ruby-on-rails – 设计多种模型和多种登录表单
我正在使用rails 3.2并设计2.1来创建一个多站点CMS
要求 >基于Basecamp子域的站点. 可能的解决方案 我一直在寻找和找到了一些解决方 > 3个独立模型: $rails generate devise admin $rails generate devise author $rails generate devise subscriber 但是这会产生以下错误 $rails生成设计作者 > STI:数据库中的单个表,并为每个用户类型创建一个模型 class Admin < User; end class Author < User; end class Subscriber < User; end 在这里,我不确定这将如何处理不同的登录/注册工作流程.订阅者示例我计划使用devise_invitable创建邀请.管理员不需要根据子域进行作用,这与作者和作者不同.订户. 这看起来很复杂吗?我希望我能够很好地解释. 解决方法
您不需要使用三个单独的模型来构建此功能.您想要看的是角色的概念,它应用于一个用户模型.
有一种Gem提供这种称为Rolify的功能,可以在https://github.com/EppO/rolify找到 这将允许您指定哪些用户在哪个角色中并根据您的需要更改它们,所有这些都来自一个现有模型. 将角色附加到用户模型后,您可以覆盖Devise的注册控制器以检测角色并呈现不同的模板等.您可以通过以下方式执行此操作: >运行rails生成设计:视图将视图从Devise gem解压缩到您的项目中 # app/controllers/registrations_controller.rb class RegistrationsController < Devise::RegistrationsController def new super # Add logic here to detect Role and display different forms end def create super end def update super end end >在routes.rb文件中添加正确的设置,告诉Devise使用新的控制器: # app/config/routes.rb devise_for :users,:controllers => {:registrations => "registrations"} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |