我的循环跳过空数据

时间:2011-10-27 03:53:52

标签: ruby-on-rails ruby

我有一个循环问题。 我想收集每个月的每件商品的名称数量 此代码跳过具有空值的变量,但我需要这些值。 下面是一些涉及的表格

Name
  id int
  date date
  item_id int

所以我需要循环它们并将它放在一个数组中。

@names = Name.find(:all)
@list=Array.new
@names.each do |e|
 @list << Name.count(:all,:conditions=>["item_id = ? and DATE FORMAT(date,%M) = ?",e.item_id,date],:group =>DATE FORMAT(date,%m),:order=>"date ASC")
end

因此,对于每个具有空计数的item_id,它都没有进入数组。 我该如何加入它们?

2 个答案:

答案 0 :(得分:0)

通过选择ID或nil ID

来包括空白/零ID
:conditions => ["(item_id = ? OR item_id = ?) and DATE FORMAT(date,%M) = ?", e.item_id, nil, date]

答案 1 :(得分:0)

@list << Name.count(
  :all,
  :conditions=>["item_id = ? and DATE FORMAT(date,%M) = ?",e.item_id,date],
  :group =>DATE FORMAT(date,%m),
  :order=>"date ASC"
) || nil