2016-09-06 95 views
0

我想一次检索一个Personself)和他的historyHistory有很多字段,所以我只想检索一些列,我该如何实现呢?是否可以选择包含模型中的字段?

where_clause = "1=1" # irrelevent query 

self.where(reference: 12345) 
    .includes(:history) 
     # .select(:history_name, :history_key) 
     .where(where_clause) 
     .references(:history) 

回答

0
select('history.field_name1', 'history.field_name2') 
1

嘿,你正在使用includes跃跃欲试负荷记录,但在这里没有必要的,因为你是直接选择值可以使用他们喜欢这个

self.where(reference: 12345) 
    .includes(:history) 
    .select(history: { :history_name, :history_key }) 
    .where(where_clause) 
    .references(:history) 
0

。一个select条款不能与includes工作,你可以使用joins作为

Person.joins(:history).select(:history_name, :history_key).where(where_clause) 
相关问题