Rails has_and_belongs_to_many объединяет 3 таблицы - PullRequest
2 голосов
/ 25 апреля 2009

У меня есть три модели: список, категория и сайт. Между списком и сайтом существует много-много взаимосвязей, а между списком и категорией много-много. Таким образом, листинг принадлежит одному или нескольким сайтам и одной или нескольким категориям (листинг может появляться на нескольких сайтах и ​​нескольких категориях).

Учитывая идентификатор сайта и идентификатор категории, я хочу, чтобы набор всех списков. Я понимаю, как получить списки из идентификатора сайта (Listings = site.listings) и как получить списки из идентификатора категории (lists = category.listings), но как мне получить тройное соединение из набора списков И идентификатор сайта, и идентификатор категории?

sql будет выглядеть примерно так (вводятся sit_id и cat_id): выберите l.name из списков l, категорий_ списков cl, списков_ сайтов, ls где cl.category_id = cat_id и ls.site_id = sit_id и cl.listing_id = l.id и ls.listing_id = l.id

Заранее спасибо

1 Ответ

0 голосов
/ 25 апреля 2009

Возможно, вам понадобится выполнить has_many: through и определить таблицы объединения в модели, указав принадлежащее_ родительским таблицам.

 class Assignment  :assignments
  end
  class Project  :assignments
  end

Эта [ссылка] [1] также может помочь.

Ура и удачи.

[1]: помощь? Rails: has_many: through или has_many_and_belongs_to?

...