1

我现在正试图调试这个几个小时,但我没有取得任何进展。我使用 DataMapper 作为 ORM,使用 SQLite 作为数据库系统:

DataMapper.setup(:default, 'sqlite:db.sqlite')

我有两个模型UserGame. 当我向第一个模型添加字段时,一切正常。一旦我添加一个字段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 不支持的某种类型?

4

1 回答 1

0

我终于解决了这个问题!

我将我的应用程序推送到heroku,看看它是否是一些本地问题。当应用程序在 heroku 上崩溃时,我得到了一个堆栈跟踪作为我的 AJAX 请求的响应,但我没有在本地得到一个(应该是相反的,我知道)。问题是我正在调用to_jsonDataMapper 模型。我现在正在使用dm-serializer,它工作正常。

于 2013-02-16T16:22:02.420 回答