我想一次检索Person
(self
)和他的history
。
History
有很多字段,所以我只想检索一些列,我怎样才能实现呢?
where_clause = "1=1" # irrelevent query
self.where(reference: 12345)
.includes(:history)
# .select(:history_name, :history_key)
.where(where_clause)
.references(:history)
答案 0 :(得分:1)
您可以像这样使用它们
self.where(reference: 12345)
.includes(:history)
.select(history: { :history_name, :history_key })
.where(where_clause)
.references(:history)
答案 1 :(得分:0)
select('history.field_name1', 'history.field_name2')
答案 2 :(得分:0)
嘿,您正在使用includes
急切加载记录,但这里不需要,因为您直接选择值。 select
条款无法与includes
一起使用,您可以将joins
用作
Person.joins(:history).select(:history_name, :history_key).where(where_clause)