【发布时间】:2010-12-09 17:07:37
【问题描述】:
我正在使用 Rails 3 和 Devise。
我可以有两种类型的用户,我称之为“管理员”和“客户”,它们都存储在用户表中,由布尔“管理员”列的值区分。
可以通过两种方式创建“管理员”:
1) 创建新帐户后 - 在这种情况下,我们还创建了一个关联的“业务”记录
2) 从现有帐户中(因此一个“企业”可以有多个“管理员”) - 如果我们想将其与现有业务记录相关联
可以通过 1 种方式创建“客户端”:
1) 不同于用于创建上述“管理员”的表单
在所有 3 种情况下,都将使用不同的形式。提交后,他们都有不同的要求:
- 我想向每个人发送不同的电子邮件。
- 在上面的第一个“管理员”案例中,我需要检查请求的业务 url 是否是唯一的,在第二种情况下我不需要。而在客户案例中,我没有。
- 在第一个“管理员”情况下,我想在完成帐户后创建一些默认数据库条目,但不是在第二种情况下。
- 创建“客户”帐户后,我想执行一些特定于该帐户类型的其他操作。
我应该为不同的用户类型使用相同的控制器,还是将它们分开?如果它们应该相同,它如何知道它应该创建什么类型的用户?
模型呢?
对如何构建这个有什么想法吗?
非常感谢。
【问题讨论】:
标签: ruby-on-rails architecture devise