如果条件适合时间范围

时间:2013-04-09 15:52:15

标签: ruby-on-rails-3

我想在我的rails应用中根据订单交货时间更改订单金额。为此,我修改了我的order_controller,如下所示:

  class OrdersController < ApplicationController
  before_filter :authenticate_user!
  def process_order
    @order = current_order
    if (@order.delievery_time[(4i), (5i)].between?('22:00', '00:30')) 
      @order.total = @order.total + @@mnc 
    end 
  end
  end

此处,当用户在2200hrs到0030hrs之间提交交货时间时,'total'字段应为 (总数=总数+50)。这个总价值应该提交。

但在[(4i),(5i)]'错误上给出'语法错误。

正如我在错误日志中看到的那样,它显示如下:

 "delievery_time(1i)"=>"2013",
 "delievery_time(2i)"=>"4",
 "delievery_time(3i)"=>"9",
 "delievery_time(4i)"=>"23",
 "delievery_time(5i)"=>"00",

我只对最后两个值感兴趣。怎么做这个工作? 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

假设delivery_time属于Time类(或类似Rails TimeWithZone的东西),您可以像这样访问小时和分钟:

delivery_time = Time.new(2013, 4, 9, 23, 00)

puts delivery_time.hour   #=> 23
puts delivery_time.min    #=> 0