【发布时间】:2014-09-23 17:45:57
【问题描述】:
我有一个移动应用程序,它可以通过使用SimpleEvent 模型的标准路由向我们的 Rails 应用程序发送 Post 请求来创建事件。模型的重要部分在模式中如下所示:
create_table "simple_events", force: true do |t|
t.datetime "start_date", null: false
t.datetime "end_date", null: false
end
应用程序发送浮点值来指示时间是最简单的,因为这是它们在本地存储的方式。但是,当我尝试使用带有以下行的纪元时间戳在 Rails 控制台中创建 SimpleEvent 时:
SimpleEvent.create("start_date"=> 1406815132.0, "end_date"=> 1406815132.0)
我收到此错误:
ArgumentError: argument out of range
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activesupport-4.1.4/lib/active_support/values/time_zone.rb:289:in `initialize'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activesupport-4.1.4/lib/active_support/values/time_zone.rb:289:in `new'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activesupport-4.1.4/lib/active_support/values/time_zone.rb:289:in `parse'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activesupport-4.1.4/lib/active_support/core_ext/string/zones.rb:9:in `in_time_zone'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/attribute_methods/time_zone_conversion.rb:37:in `start_date='
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/attribute_assignment.rb:45:in `public_send'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/attribute_assignment.rb:45:in `_assign_attribute'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/attribute_assignment.rb:32:in `block in assign_attributes'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/attribute_assignment.rb:26:in `each'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/attribute_assignment.rb:26:in `assign_attributes'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/core.rb:455:in `init_attributes'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/core.rb:198:in `initialize'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/inheritance.rb:30:in `new'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/inheritance.rb:30:in `new'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.4/lib/active_record/persistence.rb:33:in `create'
from (irb):71
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/railties-4.1.4/lib/rails/commands/console.rb:90:in `start'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/railties-4.1.4/lib/rails/commands/console.rb:9:in `start'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:69:in `console'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /Users/ataylor/.rvm/gems/ruby-2.1.1/gems/railties-4.1.4/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'2.1.1 :072 >
我尝试在 rails 源代码中寻找可能的解释,但运气不佳。我可以做些什么来允许从模型中的时间戳创建 DateTimes?
【问题讨论】:
标签: ruby-on-rails ruby datetime activerecord epoch