如何从结果集中的子表中获取字段

时间:2015-03-16 17:23:50

标签: ruby-on-rails ruby postgresql activerecord

我在两张桌子之间加入。 Instruments是父表,Statuses是子表。我只期待检索具有inst_status =' Active'在子状态表中。

i = Instrument.joins(:statuses).where("statuses.inst_status='Active'")

生成的结果查询是:

SELECT "instruments".* FROM "instruments" INNER JOIN "statuses" ON "statuses"."instrument_id" = "instruments"."id" WHERE (statuses.inst_status='Active')

哪个好,它只返回55个有效的乐器。 但是,如何从结果集中的Statuses(子)表中获取字段以及(父)Instruments表中的字段?

1 个答案:

答案 0 :(得分:1)

嗯,你必须使用select方法:

Instrument.joins(:statuses)
          .where("statuses.inst_status='Active'")
          .select("inst‌​ruments.*, statuses.*")