[英]Comparing datetime variables in Rails
Rails 3 Ruby 1.92-我有一個輔助方法,將對象上的datetime屬性與當前日期和時間進行比較。
module StoreHelper
def initial_time(product)
if product.time_type == "Min"
initial_time = (product.time * 60)
elsif product.time_type == "Hrs"
initial_time = (product.time * 3600)
else
initial_time = 0
end
end
def time_based_price(product)
start_time = product.start_time
current_time = Time.now
expire_time = start_time + initial_time(product)
if (current_time <= expire_time) && (unit_sales(product)>= product.volume)
time_based_price = (product.price - product.boost_savings)
else
time_based_price = product.price
end
end
end
當我從視圖中調用它時,出現錯誤“ 0:Fixnum的未定義方法'to_datetime'”。 如果我將比較行(current_time <= expire_time)更改為(expire_time> = current_time),則會收到錯誤消息“ Fixnum與時間比較失敗”
我已經嘗試為時間和日期時間同時使用.now,.current,.zone.now,但沒有運氣。 當我從我的視圖調用Time.zone.now和expire_time值時,它們具有相同的格式:
2013-11-17 20:48:07 UTC - Time.zone.now
2013-11-17 16:15:00 UTC - expire_time
您是否為列表中的每個產品調用此方法? 在這種情況下,對於其中一種產品,似乎沒有為start_time和time_type設置任何值。 當expire_time為0時,您會收到此錯誤。但是,由於您嘗試了expire_time的值,因此我相信更多的產品實例必定會發生此錯誤,而其中一個實例卻會失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.