我想在我的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",
我只对最后两个值感兴趣。怎么做这个工作? 有人可以帮忙吗?
答案 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