2016-09-06 15 views
0

Personself)と彼のhistoryを一度に取得したいと考えています。 Historyフィールドが多いので、いくつかのカラムだけを取得したいのですが、どうすれば実現できますか?あなたが直接値を選択しているので、ここでは必要とされていない熱心な負荷レコードだけにincludesを使用しているねえ付属のモデルでフィールドを選択することはできますか?

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

あなたはこの

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

のようにそれらを使用することができます。 select句を使用すると、

Person.joins(:history).select(:history_name, :history_key).where(where_clause) 
として joinsを使用することができます includesでは動作しません
関連する問題