rails 3: использование идентификатора из таблицы «многие ко многим» для выполнения другого запроса - PullRequest
0 голосов
/ 11 марта 2012

У меня есть таблица с контактами, таблица с событиями и объединяющая таблица с contact_id и event_id для сопоставления их отношения многие ко многим.

Я новичок в RoR и привыкдля запроса первой таблицы, построения набора идентификаторов и выполнения запроса ко второй таблице, где id IN setofids.Так ли это в RoR?

Вот что у меня есть:

def view
 @contact = Contact.find(params[:contact_id])
 @contactevents = Contacts_Event.where(:contact_id => params[:contact_id])

 s1 = Set.new 
@contactevents.each do |contactevent| 
  s1.add(contactevent.event_id)
end

 @contactevents_test = Event.where(:id => @s1)

end

1 Ответ

0 голосов
/ 11 марта 2012

хорошо, это один из способов сделать это, но на самом деле вы смотрите на has_and_belongs_to_many ассоциацию (руководство здесь) . Идея состоит в том, что когда вы делаете @contact = Contact.find(params[:contact_id]), он автоматически вытягивает все связанные Contacts_Events, а также одним запросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...