一直在踢这个,现在想找一个了解 Rails 的人来测试我的理论(我是 Rails 的新手)。
在我的(简化)场景中,我想管理一个用户列表,其中一些是“付费”用户,一些是“免费”用户等,并且存在直接的“isa”关系。即付费用户是用户,免费用户是用户等
为了减少冗余并保持语义正确,我想在一个表中管理所有用户并使用外键返回正确的用户“类型”,这样我就可以创建正确类型的角色。例如,我将实例化一个用户,获取 id 并将其存储在正确类型的用户中,例如“user_id”外键中的“PaidUser”。这使我能够存储我想要针对它们存储的特定元数据,并且我不必为每种类型的用户拥有一个包含每个字段的表(“用户”)。
这种感觉就像是角色和用户类型的混淆。我的问题是,使用上述方法会让生活变得困难吗?我缺少的 Rails 中是否有一种可接受的方法?我正在使用 Devise 并删除了除 /users/ 之外的所有路由,我认为我会将“类型”作为参数传递,并使用该类型与用户同时创建相应的“真实”类型的记录。这也是不好的做法吗?
提前致谢