【发布时间】:2015-11-07 04:34:09
【问题描述】:
我尝试保存具有名为class_datetime(这是DateTime)的属性的行,但它静默失败。这是一个例子:
我创建了一个新的LittleClassSession,如下所示:
irb(main):010:0> l = LittleClassSession.new
=> #<LittleClassSession id: nil, length: nil, class_datetime: nil, created_at: nil, updated_at: nil, little_class_id: nil, location_id: nil, session_series_token: nil>
class_datetime 是 DateTime:
irb(main):011:0> LittleClassSession.columns_hash["class_datetime"].type
=> :datetime
我设置了属性:
irb(main):012:0> l.class_datetime = DateTime.now
=> 2015-08-13 22:02:09 -0400
然后我保存(还没有验证):
irb(main):013:0> l.save
(0.1ms) begin transaction
SQL (0.4ms) INSERT INTO "little_class_sessions" ("class_datetime", "created_at", "updated_at") VALUES (?, ?, ?) [["class_datetime", "2015-08-13 22:02:09.976030"], ["created_at", "2015-08-13 22:03:01.255911"], ["updated_at", "2015-08-13 22:03:01.255911"]]
(2.6ms) commit transaction
=> true
看起来成功了。让我们看看我保存了什么:
irb(main):014:0> l
=> #<LittleClassSession id: 728, length: nil, class_datetime: "2015-08-14 02:02:09", created_at: "2015-08-14 02:03:01", updated_at: "2015-08-14 02:03:01", little_class_id: nil, location_id: nil, session_series_token: nil>
让我们看看表中有什么:
irb(main):015:0> LittleClassSession.last
LittleClassSession Load (0.2ms) SELECT "little_class_sessions".* FROM "little_class_sessions" ORDER BY "little_class_sessions"."id" DESC LIMIT 1
=> #<LittleClassSession id: 728, length: nil, class_datetime: nil, created_at: nil, updated_at: nil, little_class_id: nil, location_id: nil, session_series_token: nil>
我的 LittleClassSession 模型如下所示:
class LittleClassSession < ActiveRecord::Base
belongs_to :little_class
belongs_to :location
end
这可能是什么原因造成的?最近我更改了application.rb 中的默认时区,但我不明白这可能是什么原因。
【问题讨论】:
-
试试
#save!看看它是否会抛出任何错误。
标签: ruby-on-rails sqlite datetime ruby-on-rails-4