繁体   English   中英

Rails / ActiveRecord:仅加入第一个关联

[英]Rails/ActiveRecord: joining first association only

class Session
  has_many :events
end

class Event
  belongs_to :session

  # referrer column
end

每个event都有一个referrer列,但是我只对session的原始(第一个)引荐来源感兴趣。 因此,我希望能够将第一个event加入到session ActiveRecord是否可能?

编辑:

为了澄清,我想拉出一个会话列表并加入会话的事件。 但是,我不希望加入所有事件,而只是想要FIRST事件(与第一个事件一样)。

Session.joins(:events) # but I don't want to join all events, just the first one, so I can access the first event's referrer column.

这对我有用:

Event.joins(:session).first.referrer

当然有可能。 您需要的是事件表中的外键。 该名称应为session_id,在您通过会话时会自动设置。 像那样:

event.session=Session.first

要将session_id列添加到事件表中,您需要生成迁移

rails g migration addSessionIdToEvents

并添加一列...

def self.up<br />
  add_column :events, :session_id, :integer<br />
end

然后迁移

rake db:migrate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM