我有一个用户模型。我正在从事电子商务市场应用。我需要能够将用户从买家切换到卖家。如果用户想成为卖家,则存在另一个名为sellerinfo的表来填写他的卖家信息。我在Users表中有一个名为is_seller的列? 。因此,如果用户是卖家,那么我必须创建一个关联,以便我可以提供更多关于他的信息。可以从user.rb文件中执行此操作:
has_one :seller_info if user.is_seller?
我认为这不是Rails方式。请建议如何切换用户并存储他们的数据。
答案 0 :(得分:1)
使用这样的代码,它允许您使用所有ActiveRecord association's benefits
此外,在创建/更新期间,您必须考虑:
seller_info
,如果用户移至买方类型。is_seller?
值答案 1 :(得分:1)
你应该至少有三个表:
1 - 用户表,这里只是凭证
2 - 用户买家表(has_one association),用户的个人信息
2.1 - 如果您想让用户拥有多个送货地址,请解决用户买家(来自用户买家表的has_many或两个has_one关联)。
3 - 用户卖家表,卖家信息
对于用户的卖家表:
对于表的用户卖家,使用has_one关联和Optional设置为True(允许此关联具有空值)。还应考虑仅在用户填写所有预先要求时创建has_one关联。因此,仅存在想要在用户的卖家表中销售的用户。要查看该用户,卖家只需检查has_one是否存在。
关于标志user_seller:
您可以使用在用户表中创建的标志user_is_seller来跟踪用户的状态,前提是他是否处于卖家模式。如果是,那么您可以拥有仅适用于该状态的控制器(使用before_filters来过滤非卖家或未处于卖家模式的用户)。
这样,您可以在同一帐户中拥有卖家和买家的现有用户。