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

时间:2011-10-17 14:28:41

标签: ruby-on-rails activerecord

class Session
  has_many :events
end

class Event
  belongs_to :session

  # referrer column
end

每个event都有一个referrer列,但我只对session的原始(第一个)推荐人感兴趣。所以我希望能够加入第一个eventsession。这可能与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.

2 个答案:

答案 0 :(得分:-1)

这对我有用:

Event.joins(:session).first.referrer

答案 1 :(得分:-1)

原因可能。您需要的是事件表中的外键。这应该被称为session_id,它会在你通过会话时自动设置。像那样:

event.session=Session.first

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

rails g migration addSessionIdToEvents

添加一栏......

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

然后迁移它

rake db:migrate