簡體   English   中英

比較Rails中的日期時間變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM