繁体   English   中英

在Rails中制作各种类型用户的标准方法是什么?

[英]What is the standard way to make varied types of Users in Rails

我开始的项目有多种用户,基本上是买家和卖家模型。 某些属性适用于不向卖方提供的买方,但它们共享许多基本用户特征。 如果它不是一个Web应用程序,我知道如何继承,但在rails中执行此操作的正确方法是什么?

如果是引入角色或组概念的问题,则应添加角色或组模型,以便用户可以成为买方和卖方。 但由于它不是一个角色,而您的目标是拥有买方和/或卖方特定字段,因此您应该有另外两个名为买方和卖方的模型,然后在用户模型中与每个模型建立关联。 这样,用户可以是买方,卖方,两者,甚至是两者中的许多人。

如果您在某个时刻需要用户和卖家之间的多对多(例如),那么即使您可以使用HABTM,最好引入一个领带模型并使用has_many:through,这样它可以有关于关系的数据等。

假设您使用的是ActiveRecord,请在开始之前仔细阅读: http//guides.rubyonrails.org/association_basics.html

(或者,对于边缘: http//edgeguides.rubyonrails.org/association_basics.html

您正在寻找的Rails中的概念称为单表继承

您创建一个基本User模型,然后使用User作为基类子类化不同的其他模型。

为角色/用户类型之间共享的所有基本属性创建User模型。 然后为BuyerSeller制作单独的模型, delegate所有共享属性delegateUser模型。

这种方法不适用于很多用户类型,但应该适合您的情况。

参考: http//api.rubyonrails.org/classes/Module.html#method-i-delegate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM