【问题标题】:ActiveRecord association between User and Event用户和事件之间的 ActiveRecord 关联
【发布时间】:2014-02-13 18:43:31
【问题描述】:

我有一个用户和一个事件模型。我希望能够将每个事件与多个参加用户相关联,然后让另一个也在参加者中的用户被标记为所有者,这样我就可以拨打@event.users 之类的电话来检索所有参加者@event.owner 来检索所有者,然后还可以调用@user.events 来获取用户正在参加的活动。

创建名为 Events_Users 的第三个模型,通过将 user_id 和 event_id 一起存储来跟踪用户和事件之间的关系,或者只是使用 user_id 和 owner_id 更新现有的 Event 模型,是最佳选择吗?

请,一些具体的建议将不胜感激 谢谢

【问题讨论】:

    标签: ruby-on-rails activerecord model associations


    【解决方案1】:

    我会这样做的。

    class Event < ActiveRecord::Base
      belongs_to :owner, class_name: 'User'
      has_and_belongs_to_many :attendees, class_name: 'User' 
    end
    

    这样,您将在 events 表(所有者)中获得用户的参考 ID,并且用户/事件(事件的参与者)的典型 HABTM 关系将存在连接表。

    希望对你有帮助!

    更新 这是用户类的关联:

    class User < ActiveRecord::Base
      has_many :events
      has_and_belongs_to_many :attended_events, class_name: 'Event'
    end
    

    更新 2 这是link 到 Rails 的关联指南。它将解释如何为这些类型的关系创建适当的表和列。

    【讨论】:

    • 用户模型是否也需要定义关联?
    • 当然他们需要。我相信这很明显。我会在几秒钟内更新我的答案。
    • 好吧,我对 Rails 很陌生,但仍在尝试掌握一些东西
    • 谢谢,但是每当我尝试调用协会提供的方法时,比如@event.owner,什么都没有发生
    • 您需要为此创建适当的表。我会放一个链接来指导回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多