【发布时间】:2015-10-15 17:54:00
【问题描述】:
我有 2 个模型:
class Books < ActiveRecord::Base
has_many :library_books
has_many :libraries, through: :library_books
end
class Library < ActiveRecord::Base
has_many :library_books
has_many :books, through: :library_books
end
我运行的查询类似于:
books = Book.joins(:libraries).where("title LIKE ?", "%somevalue%")
此查询有效,并从所有图书馆获取特定标题的所有书籍。但是,我正在尝试从我拥有的书籍列表中获取所有图书馆。如果我这样做,我可以获得每个图书馆:
books.each do |b|
libraries = b.libraries
# Do something with the libraries
end
但是,必须有一种更简单的方法来做到这一点,而无需遍历每本书。我如何获得所有图书馆而不必遍历每本书以将它们放入查询中(并删除可能出现的任何重复图书馆)?有可能吗?
一如既往,提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 rails-activerecord