我正试图在几个小时内调试这个,我只是没有取得任何进展。我使用DataMapper作为ORM,使用SQLite作为数据库系统:
DataMapper.setup(:default, 'sqlite:db.sqlite')
我有两个模型User
和Game
。当我向第一个模型添加字段时,一切正常。一旦我向Game
添加字段(通过Sinatra路由或IRB),所有对Sinatra的HTTP请求都会超时。所有这些,包括那些静态资产。我仍然可以通过IRB(Game.all
)访问所有数据库信息。
当我清空数据库(DataMapper.auto_migrate!
)并重新启动服务器(shotgun + thin)时,一切正常。
我知道这可能很难回答这个问题,但没有任何错误,我不知道如何调试它,所以如果你们能指出我正确的方向,我会很感激。
那是Game
模型:
class Game
include DataMapper::Resource
property :id, Serial
property :active, Boolean, default: true
property :players, Object
property :name, String, required: true
property :size, Integer
property :filled_size, Integer, default: 1
end
也许我正在使用SQLite不支持的某种类型?
答案 0 :(得分:0)
我终于解决了这个问题!
我将我的应用推送到heroku,看看它是否是一些本地问题。当应用程序在heroku上崩溃时,我得到了一个堆栈跟踪作为我的AJAX请求的响应,我没有在本地得到一个(应该是相反,我知道)。问题是我在DataMapper模型上调用了to_json
。我现在正在使用dm-serializer,它运行正常。