gpt4 book ai didi

ruby-on-rails - Ruby on Rails - 2 种用户类型

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:00 25 4
gpt4 key购买 nike

我正在编写 ruby​​ on rails 应用程序,它将有 2 种不同的用户类型(比如说卖家和买家)。我正在使用 devise gem 来处理身份验证。

我不想使用单表继承有3个原因:
1) 我不想在我的用户表中有很多列(我必须在一个表中存储卖家和买家的字段,他们会有很多不同的字段)
2) 我不想在我的数据库中有很多空值
3) 保持买卖双方分离有助于提高履约速度

我决定为卖家和买家创建 2 个独立的模型(并为每个模型生成设计)。长话短说 - 它造成了一些麻烦(即处理单一表单登录的困难,使用多态关联处理简单的事情,如“私有(private)消息”,保持我的代码干燥等)

问题来了:
您认为创建一个具有一些公共(public)字段的模型(用户)以便通过设计轻松处理身份验证是个好主意,然后使用 belongs_to 和 has_one 关联创建单独的模型(卖家和买家)以存储更多信息吗?像这样:

class User < ActiveRecord::Base
has_one :seller
has_one :buyer
end

class Seller < ActiveRecord::Base
belongs_to :user, :conditions => "user_type= 'seller'"
end

class Buyer < ActiveRecord::Base
belongs_to :user, :conditions => "user_type= 'buyer'"
end

这是一个好的解决方案吗?还是您认为单表继承会更好?

可能会带来什么麻烦/困难?
为每个用户显示个人资料页面的路线是什么?我想要像 website.com/sellers/idwebsite.com/buyers/id

这样的东西

如果您能为我的问题想到更好的解决方案 - 请告诉我。

最佳答案

如果您为卖家和买家创建单独的表并使用多态关联,那就更好了 Inheritance and polymorphic-associations in rails .

将这两件事分开,您将提高数据库查询的速度,并且将卖方和买方逻辑保留在它们自己的类中也是非常好的做法。

关于ruby-on-rails - Ruby on Rails - 2 种用户类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9600311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com