我正在使用 rails 3.2 并设计 2.1 来创建多站点 CMS
要求
- 基于站点的 Basecamp 子域。
- 有 3 个“用户”模型。1. 管理员(超级用户) 2. 作者(每个人在子域上都有自己的站点)和订阅者(阅读站点)。
- 作者:注册是普通的用户名/密码组合,但需要管理员批准。他们的注册表单将有子域字段。
- 订户:通过邀请电子邮件进行注册。
- 需要单独的登录和注册表格
可能的解决方案
我一直在寻找并发现很少的解决方案
- 3 设计中的独立模型:
$ rails generate devise admin
$ rails generate devise author
$ rails generate devise subscriber
但这会出现以下错误
$ rails generate devise author
/home/gaurish/.rvm/gems/ruby-1.9.3-p286-perf/gems/devise-2.1.2/lib/devise/rails/routes.rb:443:in 'raise_no_devise_method_error!': Admin does not respond to 'devise' method. This usually means you haven't loaded your ORM file or it's being loaded too late. To fix it, be sure to require 'devise/orm/YOUR_ORM' inside 'config/initializers/devise.rb' or before your application definition in 'config/application.rb' (RuntimeError)
- STI:数据库中的单个表并为每个用户类型创建一个模型
class Admin < User; end
class Author < User; end
class Subscriber < User; end
在这里,我不确定这将如何处理不同的登录/注册工作流程。例如,我计划使用devise_invitable创建邀请的订户。与作者和订阅者不同,管理员不需要根据子域来确定范围。
这看起来很复杂吗?我希望我能够很好地解释。