0
我在一个Rails应用程序中使用Chronic,如下所示。我有一个单独的文本字段(jQuery下拉列表)日期和时间的表单。在我的模型中,我有一些虚拟属性,它们应该使用Chronic来解析组合数据时间到数据库。慢性正确解析日期,但无论我在文本字段中输入什么时间,都会在日期时间字段中输出12:00:00作为时间。我测试了IRB中的输入类型,它似乎工作正常,我在这里错过了什么?慢性不正确解析时间
型号:
class VisitBlock < ActiveRecord::Base
attr_accessible :start_date_text, :time_text
attr_writer :start_date_text, :time_text
before_save :save_start_date_text
def time_text
end
def start_date_text
@start_date_text || visit_date_start.try(:strftime, "%m-%d-%Y")
end
def save_start_date_text
self.visit_date_start = Chronic.parse("#{start_date_text} #{time_text}").in_time_zone if @start_date_text.present?
end
控制台登录:
Started POST "/visit_blocks" for ************** at 2013-04-21 19:56:20 +0000
Processing by VisitBlocksController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Ns4YyAL9a44RU3T/wOw+DPcigVbBd6eQ5wz1exq3g1M=", "visit_block"=>{"start_date_text"=>"04/22/2013", "time_text"=>"05:15 AM"}, "hou
r"=>"05", "minute"=>"15", "meridian"=>"AM", "button"=>""}
Client Load (4.8ms) SELECT "clients".* FROM "clients" WHERE "clients"."last_name" IS NULL LIMIT 1
(0.1ms) begin transaction
SQL (3.2ms) INSERT INTO "visit_blocks" ("visit_date_start") VALUES (?) [["created_at", Sun, 21 Apr 2013 19:56:20 UTC +00:00], ["updated_at", Sun, 21 Apr 2013 19:56:20 UTC +00:00], ["visit_date_start", Mon, 22 Apr 2013 12:00:00 UTC +00:00]]
(6.7ms) commit transaction
'visit_date_start'是什么类型?解析工作正常AFAICT,使用日志中显示的参数:'Chronic.parse(“#{start_date_text}#{time_text}”)。in_time_zone => 2013年4月22日星期一09:15:00 UTC +00:00'你确定参数被正确拉出吗? – 2013-04-21 20:35:18
从schema.rb:t.datetime“visit_date_start”。我不确定如何测试参数是否正确拉出。 – Shaun 2013-04-21 23:01:15