0

次の Model メソッドを定義しています。

   def live
       deb = start_date||= 100.years.ago # if the start date is nil, it's live
       fin = end_date||=100.years.from_now # if the end date is nil, it's live
       Date.today.between?(deb, fin)
   end

start_date と end_date が満たされている場合、メソッドは正しい値 (true または false) を返します。それらが nil の場合、"can't iterate from NilClass" というエラーが発生します。

4

1 に答える 1

1

おそらく別のアプローチですか?

def live
  deb = self.start_date? ? start_date : 100.years.ago
  fin = self.end_date? ? end_date : 100.years.from_now
  Date.today.between?(deb.to_date, fin.to_date)
end
于 2013-08-28T17:08:04.077 に答える