【发布时间】:2015-05-21 03:19:06
【问题描述】:
我想用 Marshal 将 Sqlite 内存数据库转储到磁盘,但得到以下错误,这里是完整的测试。用于保存在内存数据库中的 Sqlite API 似乎只能在 C 中使用。
require 'sqlite3'
require 'active_record'
ActiveRecord::Base.establish_connection(
:adapter => "sqlite3",
:database => ":memory:"
)
ActiveRecord::Schema.define do
create_table :tests do |table|
table.column :word, :string
end
end
class Test < ActiveRecord::Base;end
Test.create(word: 'test')
puts Test.all.length
c = ::ActiveRecord::Base.connection
File.open('sqlite_db.marshal','wb') { |f| f.write(Marshal.dump(c)) }
# => error `dump': can't dump hash with default proc (TypeError)
【问题讨论】:
标签: ruby database activerecord serialization sqlite