Activerecord从三连接查询中选择列

时间:2015-12-14 13:02:39

标签: ruby-on-rails activerecord

我有3个模型Passenger, Taxi, Order我想获得这些表的某一列。我用它来成功加入它们。

Taxi.joins(:orders => :passenger).where(:taxi =>{:taxi_id =>2 } )

我想选择一些乘客表的列和一些订单列, 但我不知道我该怎么做?

另一个问题是,此查询的结果只是出租车的列,而不是taxi+order+passenger的列

我认为我的查询存在问题

2 个答案:

答案 0 :(得分:1)

Taxi
  .joins(orders: :passenger)
  .where(taxi: {taxi_id: 2 })
  .pluck('passengers.column_name, orders.column_name')

答案 1 :(得分:0)

Taxi.joins(orders: :passenger).where(taxi:{taxi_id: 2}).includes(orders: :passenger).map do |taxi|
  #this will not query again as the includes directive above already fetched
  taxi.orders.map {|p| puts p}  
end