我有一个客户信用卡数据库(不是完整的数字,只有CC类型,如果他们通过验证),我正在尝试计算每种类型的卡(Visa,Amex等)的数量。
卡的类型在type
表格中存储为Cards
。
我已尝试过:Card.count(:type).distinct
但收到undefined method 'distinct'
错误。
最终尝试返回每种卡类型的数组以及该表中有多少类型。
我在Postgres数据库上运行Rails 4.0.1和Ruby 2.0.0。
答案 0 :(得分:2)
快速查看api.rubyonrails.org/classes/ActiveRecord/Calculations.html或许这个例子:
Person.group(:city).count
是你需要的
所以,它应该是这样的:
Card.group(:type).count
答案 1 :(得分:0)
card_types = Card.all.select("distinct type").map(&:type)
card_types.each do |ctype|
puts "There were #{Card.where(:type => ctype).count} cards of the '#{ctype}' type"
end
这可能就是你要找的东西。然而,当然有“更严格”的方法来实现这一点。
顺便说一下,'type'在rails中保留,不是允许的列名
答案 2 :(得分:0)
尝试: - Card.count(:group =>:type)