Ruby on rails 对RubyonRails活动记录结构感到困惑
我很难想出一种方法来将我的模型结构如下: 我通过Desive拥有用户-用户可以扮演销售、管理员和客户等角色。这是通过具有角色模型的HABTM设置的。我已经设置了一个方法,以便可以执行以下操作Ruby on rails 对RubyonRails活动记录结构感到困惑,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我很难想出一种方法来将我的模型结构如下: 我通过Desive拥有用户-用户可以扮演销售、管理员和客户等角色。这是通过具有角色模型的HABTM设置的。我已经设置了一个方法,以便可以执行以下操作 user.is? :Client 我需要的是: 具有销售角色的用户可以拥有任意数量的客户端 因此,当销售人员登录时,我可以执行User.clients来获取与他们相关的所有客户 具有客户端角色的用户只能有一个客户端 当一个新的客户端在线注册时,我想通过designe创建他们的用户,然后通过嵌套值创
user.is? :Client
我需要的是:
- 具有销售角色的用户可以拥有任意数量的客户端
- 具有客户端角色的用户只能有一个客户端
- 客户机应该有一个SalesAgent,使用用户模型
- 客户机应该只有一个designe用户,角色是客户机,使用User类
has_one :sales_agent, :class_name => "User"
但无法使其工作:/ 与其使用滚动您自己的单表继承方案重载用户类,不如在数据库中划分角色。在这个阶段,它确实让事情变得更清楚,而且它是存储特定于客户或销售代理的、不属于任何用户的数据的更好方法。例如:
class User < ActiveRecord::Base
has_many :clients
has_many :sales_agents
end
class Client < ActiveRecord::Base
belongs_to :user
belongs_to :sales_agent
end
class SalesAgent < ActiveRecord::Base
belongs_to :user
has_many :clients
end
class用户
我曾想过这样做,但后来我不得不更改一堆已经存在的数据。我想这将是最容易维护的解决方案。谢谢