Rails / ActiveRecord: присоединение только к первой ассоциации - PullRequest
2 голосов
/ 17 октября 2011
class Session
  has_many :events
end

class Event
  belongs_to :session

  # referrer column
end

Каждый event имеет столбец referrer, но меня интересует только оригинальный (первый) реферер для session.Поэтому я хотел бы иметь возможность присоединиться к первым event к session.Возможно ли это с ActiveRecord?

РЕДАКТИРОВАТЬ:

Чтобы уточнить, я хотел бы получить список сессий и присоединиться к событиям сессий.Однако вместо того, чтобы присоединяться ко ВСЕМ событиям, я хотел бы просто ПЕРВОЕ событие (как в первом созданном).

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 голосов
/ 17 октября 2011

Конечно, это возможно.Вам нужен внешний ключ в таблице событий.Это должно называться 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
0 голосов
/ 17 октября 2011

Это работает для меня:

Event.joins(:session).first.referrer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...