0

我想在我的 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

在这里,当用户提交 2200 小时到 0030 小时之间的交货时间时,“总计”字段应为(总计 = 总计 + 50)。并且应该提交这个总值。

但是给出“[(4i), (5i)] 上的语法错误”错误。

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

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

我只对最后两个值感兴趣。如何得到这份工作?有人可以帮忙吗?

4

1 回答 1

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
于 2013-04-09T22:53:19.237 回答