【问题标题】:What is the standard way to make varied types of Users in Rails在 Rails 中创建不同类型用户的标准方法是什么
【发布时间】:2023-03-22 06:50:02
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails ruby class


    【解决方案1】:

    您在 Rails 中寻找的概念称为Single Table Inheritance

    您创建一个基类User 模型,然后以User 作为基类对不同的其他模型进行子类化。

    【讨论】:

      【解决方案2】:

      如果是引入角色或组的概念,您应该添加角色或组模型,以便用户可以成为买家和卖家。但由于它与角色无关,并且您的目标是拥有特定于买方和/或卖方的字段,因此您应该有两个额外的模型,称为买方和卖方,然后在用户模型中与每个模型建立关联。这样一来,用户就可以是买方、卖方,甚至两者兼有。

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

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-01
          • 2015-07-06
          • 2010-10-23
          • 1970-01-01
          • 2019-10-25
          • 1970-01-01
          • 2011-11-25
          • 1970-01-01
          相关资源
          最近更新 更多