Fun*_*bat 3 ruby mysql activerecord ruby-on-rails
@products=@products
.group('products.id')
.joins(:inventories)
.select('products.*, sum(inventories.units_available) as `level`')
Run Code Online (Sandbox Code Playgroud)
是我可以选择的东西,尽管我不想使用产品。* 因为我不想每次都需要所有数据,我只想将 sum() 添加到 Select {stuff} from产品
如何将某些内容附加到 rails 选择的列而不是覆盖它?谢谢!
默认情况下,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
Run Code Online (Sandbox Code Playgroud)
我 99% 确信链接选择会智能地添加其余的列。
| 归档时间: |
|
| 查看次数: |
4969 次 |
| 最近记录: |