我有以下实体。
用户是在我的网站上注册的用户。事件是特定用户可以创建然后邀请其他人(其他用户)的事件。特定用户为特定事件创建费用,并且可以与事件的其他用户/访客相关联(例如,用户A为用户B和用户C以及访客D购买了一些东西)。特定用户还为特定事件创建了访客,但是一旦为该事件创建了访客,则与该事件关联的其他用户可以看到该访客。访客永远不会真正登录系统...它只是可能参加过活动但未在网站上注册的人的占位符。
我试图围绕这些实体的has_many
和belongs_to
属性。
这几乎就像在我的多对多关系表中一样,我需要另一个列来识别人(用户或客人)的“类型”,这样我就可以正确地加入来吸引用户和来宾的姓名等相应的表格。
我考虑过在users表中创建一个标志,说明该记录是否是一个访客(因此不要求访客注册该网站,登录等),但这似乎不是很干净。
非常感谢任何想法。
谢谢!
托马斯
答案 0 :(得分:1)
这听起来像你自然倾向于所谓的多态关联。您可以通过Ryan Bates看看这个Railscast:Polymorphic Associations
答案 1 :(得分:1)
我同意Gav Polymorphic只有一个人类列表类型和tada
class Person < ActiveRecord:Base
#methods and associations all people have
end
class User < Person
#methods and associations specific to users
end
class Guest < Person
#methods and associations specific to guests
end