Rails has_and_belongs_to_many连接3个表

时间:2009-04-25 02:29:33

标签: ruby-on-rails join many-to-many

我有三个模型:列表,类别和网站。列表和网站之间存在多对多的关系,列表和类别之间存在多对多的关系。因此,列表属于一个或多个站点以及一个或多个类别(列表可以出现在多个站点和多个类别上)。

鉴于网站ID和类别ID,我想要一组所有列表。我了解如何从网站ID(listings = site.listings)获取列表以及如何从类别ID(listing = category.listings)获取列表,但是如何从列表集合中获取三重连接网站ID和类别ID?

sql看起来像(sit_id和cat_id是输入): 从列表l,categories_listings cl,listings_sites,ls中选择l.name cl.category_id = cat_id和ls.site_id = sit_id和cl.listing_id = l.id和ls.listing_id = l.id

提前致谢

1 个答案:

答案 0 :(得分:0)

您可能需要执行has_many:through并通过指定belongs_to到父表来定义模型中的连接表。

 class Assignment  :assignments
  end
  class Project  :assignments
  end

这[link] [1]也可能有所帮助。

干杯,祝你好运。

[1]:帮忙? Rails: has_many :through or has_many_and_belongs_to?