3
@products=@products
  .group('products.id')
  .joins(:inventories)
  .select('products.*, sum(inventories.units_available) as `level`')

是我可以选择的东西,尽管我不想使用产品。* 因为我不希望每次都使用所有数据,我只想将 sum() 添加到 Select {stuff} 中的内容中产品

如何将某些内容附加到栏轨选择而不是覆盖它?谢谢!

4

1 回答 1

6

默认情况下,Rails 会选择“*”,所以这有点违背你所说的只想选择一些列。您是否尝试过只做您需要的列,然后在需要时选择获取更多/所有列?我假设你需要product_id加入才能工作..

@products = @products
  .group('products.id')
  .joins(:inventories)
  .select('products.id, inventories.product_id, inventories.units_available, sum(inventories.units_available) as `level`')

if i_need_some_other_column
  @products = @products.select('products.some_other_column') 
end

if i_really_need_all_the_columns
  @products = @products.select('products.*, inventories.*')
end

我 99% 确信链接选择将智能地添加其余列。

于 2012-08-03T17:52:15.210 回答