我对如何计算约会感到困惑。我有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
答案 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