`quote_string:sinatra上的datamapper没有从nil到integer的隐式转换



我有一个简单的Sinatra应用程序,我正在尝试将DataMapper与mysql适配器连接起来。代码的相关部分看起来像这个

DataMapper.setup(:default, ENV['DATABASE_URL'])
class Category
  include DataMapper::Resource
  property :id,         Serial
  property :name,       String
end
DataMapper.finalize.auto_upgrade!

我仔细检查了所有的东西。我使用的是Sinatra的模块化模式。我在模块顶部有require 'data_mapper'。Mysql服务器已启动并运行。但每当我rackup时,我都会得到以下错误:

Warning: Command failed: /dev/app/.bundle/gems/data_objects-0.10.14/lib/data_objects/quoting.rb:12:in `quote_string': no implicit conversion from nil to integer (TypeError)

我到处寻找答案,但我唯一能找到的是一个人建议将ruby从2.0升级到2.1。我不能这么做,因为这是部署到Openshift,那里的最高ruby是2.0。关于为什么会发生这种情况,还有其他建议吗?

编辑:忘记添加DATABASE_URL填充良好,我还安装了dm-mysql-adapter

通过在openshift上安装rbenv并升级到2.1+ruby解决。请参阅此处了解更多信息。

最新更新