`quote_string:在sinatra上没有使用datamapper从nil到整数`的隐式转换

时间:2015-02-08 20:57:13

标签: ruby sinatra datamapper

我有一个简单的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)

我已经搜索了高低的答案,但我唯一能找到的是一个人建议将红宝石从2.0升级到2.1。我不能这样做,因为这是部署到Openshift,其中最高的红宝石是2.0。关于为什么会发生这种情况的任何其他建议?

编辑:忘了添加DATABASE_URL填充正常,我还安装了dm-mysql-adapter

1 个答案:

答案 0 :(得分:0)

通过在openshift上安装rbenv并升级到2.1+ ruby​​来解决问题。请参阅此处more info