3

我正在尝试在 ruby​​ on rails 中构建一个购物车,它需要我显示如下输出:您的购物车中有 3 件商品(3 是我的购物车中的商品数量)并且我正在尝试查找表中的行数car_id 为 5 的 line_items。

@line_items.find(:all, :condition => { :cart_id => "5"}).count

如果有人知道我应该怎么写,请告诉我..提前谢谢

4

2 回答 2

7

您可以以缓慢的方式进行操作:

YourModelClass.find(:all, :conditions => { :card_id => 5 }).count

或快速方法:

YourModelClass.count(:conditions => { :card_id => 5 })

快速方式只是COUNT(*)在数据库内部做一个,慢速方式将整个结果集拉出数据库,将其转换为对象,然后对它们进行计数。

还有现代 Rails3+ 方式:

YourModelClass.where(:card_id => 5).count

select count(*) from t where card_id = 5在数据库内部进行。但是不要使用这个:

YourModelClass.count(:card_id => 5)

那会做的select count(card_id = 5) from t,这根本不像你想要的。

于 2011-03-21T07:49:37.437 回答
1

它应该是单独的东西

LineItem.count(:conditions => {:cart_id => 5})

因为我真的不知道型号名称和关联是什么...希望这会有所帮助=)

于 2011-03-21T07:45:10.027 回答