鉴于“书籍”的集合,找到所有“作者”(没有重复)的最佳方式是什么?
所以我们假设我们有一个经典的联想:
class Author < ActiveRecord::Base
has_many :books
end
class Book < ActiveRecord::Base
belongs_to :author
end
我现在这样做的方式是:
@books = Book.where("some condition")
@authors = Author.where(:id => @books.map(&:author_id))
有没有更好的方法呢?
答案 0 :(得分:1)
这是一种方式:
@books = Book.where("some condition").includes(:author)
@authors = @books.map(&:author).compact.uniq
说明:
答案 1 :(得分:0)