我有一个用户和一个事件模型。我希望能够将每个事件与多个参与用户相关联,然后让另一个也在参与者中的用户被标记为所有者,这样我就能够像@ event.users那样进行调用以检索所有与会者,@ event.owner,检索所有者,然后还能够调用@ user.events,以获取用户正在参加的事件。
创建名为Events_Users的第三个模型是最优化的,它通过将user_id与event_id一起存储来跟踪用户和事件之间的关系,或者仅使用user_id和owner_id更新现有的Event模型?
拜托,一些具体的建议将不胜感激 感谢
答案 0 :(得分:2)
我会这样做。
class Event < ActiveRecord::Base
belongs_to :owner, class_name: 'User'
has_and_belongs_to_many :attendees, class_name: 'User'
end
这样,您将在events
表(所有者)中拥有对用户的引用ID,并且将为用户/事件(事件的与会者)提供典型HABTM关系的连接表。
希望它有所帮助!
的更新强> 的 这是User class的关联:
class User < ActiveRecord::Base
has_many :events
has_and_belongs_to_many :attended_events, class_name: 'Event'
end
更新2 这是关联的Rails指南link。它将解释如何为这些关系创建适当的表和列。