在Rails中计算日期列

时间:2012-10-29 20:56:50

标签: mysql ruby-on-rails ruby

我对如何计算约会感到困惑。我有3个不同的列: demodate1,demodate2,demodate3

如果demodate1存在,我想将其计为1,如果存在demodate 2,我想将其计为1,如果demodate3存在,我想将其计为1.如果存在多于1个,我想要添加它们一起来。

我该怎么做?

这是我对代码的尝试:

      def demosheld
        if demodate1.present? or demodate2.present? or demodate3.present?
          demodate1.count + demodate2.count + demodate3.count
        end   
      end

2 个答案:

答案 0 :(得分:3)

def demosheld
  count = 0
  count = count + (demodate1.present? ? 1 : 0)
  count = count + (demodate2.present? ? 1 : 0)
  count = count + (demodate3.present? ? 1 : 0)
end

修改

其他选项

[demodate1, demodate2, demodate3].inject{|sum,date| sum + date.present? ? 1 : 0 }

sum = 0
[demodate1, demodate2, demodate3].each { |date| sum += date.present? ? 1 : 0 }

答案 1 :(得分:1)

一些注射魔法怎么样?

def demosheld
  [demodate1, demodate2, demodate3].inject(0) do |sum, date|
    sum + (date.present? ? 1 : 0)
  end
end