Mysql Rails,将列添加到select语句
是我可以选择的东西,尽管我不想使用产品。*因为我不想每次都使用所有数据,我只想将sum()添加到select{stuff}from products中的内容中 如何将某些内容附加到rails选择的列,而不是覆盖它?Mysql Rails,将列添加到select语句,mysql,ruby-on-rails,ruby,activerecord,Mysql,Ruby On Rails,Ruby,Activerecord,是我可以选择的东西,尽管我不想使用产品。*因为我不想每次都使用所有数据,我只想将sum()添加到select{stuff}from products中的内容中 如何将某些内容附加到rails选择的列,而不是覆盖它? 谢谢 Rails将在默认情况下选择“*”,这与您所说的只想选择一些列的说法有点矛盾。您是否尝试过只做您需要的列,然后根据需要选择获取更多/所有列?我假设您需要product\u id才能加入工作 @products=@products .group('products.id')
谢谢 Rails将在默认情况下选择“*”,这与您所说的只想选择一些列的说法有点矛盾。您是否尝试过只做您需要的列,然后根据需要选择获取更多/所有列?我假设您需要
product\u id
才能加入工作
@products=@products
.group('products.id')
.joins(:inventories)
.select('products.*, sum(inventories.units_available) as `level`')
我99%确信,链接select将智能地添加其余的列。是的,能够指定附加到select表达式的作用域非常有用,因为这会妨碍作用域的可重用性。。。
@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