我无法想出一种将我的模型构建为以下内容的方法:
我通过 Devise 拥有用户 - 用户可以担任(除其他外)销售、管理员和客户的角色。这是通过具有角色模型的 HABTM 设置的。我已经设置了一个方法,所以我可以执行以下操作
user.is? :Client
我需要的是以下内容:
- 具有销售角色的用户可以拥有任意数量的客户。
因此,当销售人员登录时,我可以执行 User.clients 来获取与他们相关的所有客户。
- 具有客户端角色的用户只能拥有一个客户端。
当一个新客户在线注册时,我想通过设计创建他们的用户,然后还通过嵌套值创建一个客户,链接到他们创建的用户。
- 客户应该有一个 SalesAgent,使用 User 模型
查看客户端时,应该能够有一个下拉列表来选择 SalesAgent。如上所述,这应该使用 User 模型。
- 客户端应该只有一个具有客户端角色的设计用户,使用用户类
客户应该能够通过设备登录以访问他们的详细信息、跟踪订单等。
如您所见,这非常令人困惑,我不确定最好的方法是什么。我唯一能想到的就是在用户和客户之间使用 HABTM,然后在表单中加入和破解以使其工作。有一个更好的方法吗?我看过也许使用
has_one :sales_agent, :class_name => "User"
但不能让它工作。:/