是否可以选择包含模型中的字段?

时间:2016-09-06 09:10:03

标签: ruby-on-rails ruby activerecord

我想一次检索Personself)和他的historyHistory有很多字段,所以我只想检索一些列,我怎样才能实现呢?

where_clause = "1=1" # irrelevent query

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

3 个答案:

答案 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)