不知道为什么我在我的日志中得到这个错误。这种错误经常发生,但不一致,我不知道为什么。这里是我的代码:Sinatra,DataMapper:没有这样的表错误
require 'rubygems'
require 'sinatra'
require 'data_mapper'
DataMapper::Logger.new($stdout, :debug)
DataMapper.setup(:default, 'sqlite3::memory:')
class LevelStatus
include DataMapper::Resource
property :id, Serial
property :italian, Float
property :hairbender, Float
property :decaf, Float
end
DataMapper.finalize
LevelStatus.auto_migrate!
post '/update-levels' do
@status = LevelStatus.create(
:italian => params[:italian],
:hairbender => params[:hairbender],
:decaf => params[:decaf]
)
status 200
end
当我POST
到/update-levels
有时我得到的消息:
DataObjects::SyntaxError - no such table: level_statuses
什么是错我的代码,这是造成这个错误?
如果你指定一个文件,而不是使用SQLite3内存存储,它是否工作? – dkubb
类似的问题(和可能的解释)在这里:http://stackoverflow.com/questions/6904298/no-such-table-error-from-sqlite-memory-db-via-datamapper – matt
啊,所以它看起来像在内存SQLite数据库是问题。将其更改为文件支持的数据库应该可以解决问题。我会尝试的。 – Andrew