解决 Rails和SQLite之间存在日期时间格式问题。删除config / application.rb中的时区条目后,此问题已清除。
我正在使用Ruby on Rails,Rails相当新。每当我查询对象时,ruby对象上的created_at和updated_at字段都是nil。
当我使用sqlitebrowser检查后端时,我可以看到该字段有一个值。我正在使用 rails console 来解决这个问题。
jwilliam@ubuntu:~/rails/devminder$ rails console
Loading development environment (Rails 4.1.8)
2.2.2 :001 > Instance.all
Instance Load (1.1ms) SELECT "instances".* FROM "instances"
=> #<ActiveRecord::Relation [#<Instance id: 1, title: "test" ec2id: "", created_at: nil, updated_at: nil, can_ice: 0>]>
2.2.2 :002 > SQLite3::Database.new('db/development.sqlite3').execute("select instances.* from instances")
=> [[1,"test", "", "2015-06-29 15:35:10.012611", "2015-06-29 15:35:10.012611", 0]]
当我执行 Instance.all 时,我看到我为created_at和updated_at获取nil,但是直接执行查询到SQLite3会显示有值,并且它们没有将它们映射到ActiveRecord属性正常。
我有一个使用SQLite3后端的Rails项目。我确信我已经做了一些事情来阻止这个应用程序,但我想弄明白。
文件 app / models / instance.rb
class Instance < ActiveRecord::Base
end
文件 app / models / schedule.rb
class Schedule < ActiveRecord::Base
#table schedules has an instance_id field...
belongs_to :instance
end
迁移 db / migrations / 20141216152255_create_instances.rb
class CreateInstances < ActiveRecord::Migration
def change
create_table :instances do |t|
t.string :title
t.string :ec2id
t.timestamps
end
end
end
文件 db / migrations / 20141230203652_instance_changes.rb
class InstanceChanges < ActiveRecord::Migration
def change
add_column :instances, :can_ice, :boolean
end
end