有没有办法做类似的事情:
Book.includes(authors: {only: :first_name})
我只想要那个属性,而不是整个作者模型。
答案 0 :(得分:0)
books = Book.where(something_here)
author_ids = books.map(&:author_id)
author_names = Author.where(id: author_ids).pluck(:id, :first_name)
答案 1 :(得分:0)
您可以使用select
获取每位作者的:first_name
属性。
authors_first_names = Author.select(:first_name)
请参阅“活动记录查询接口的Rails指南”中的selecting specific fields。
答案 2 :(得分:0)
如下:
Book.joins(:authors).select("books.*, authors.name as author_name")
结果关系中的每个实例都将在不执行其他SQL语句的情况下返回author_name
。