5

我将 DataMapper gem 与 Sinatra 一起使用,并按照此处的教程进行操作:http: //net.tutsplus.com/tutorials/ruby/ruby-for-newbies-working-with-datamapper/

我正在连接到数据库并进行迁移:

DataMapper.setup :default, "sqlite://#{Dir.pwd}/ex2.db"
DataMapper.auto_migrate!

我的数据模型:

class User
    include DataMapper::Resource

    property :id       , Serial
    property :username , String
    property :email    , String
end

我正在使用这个命令执行:

rackup config.ru

但是,当我到达这一行时:

User.create username: "JoeSchmo", email: "joe@schmo.com"

我收到错误:

Rack::Lint::LintError: Status must be >=100 seen as integer

知道为什么会这样吗?

4

3 回答 3

3

尝试删除 SQLite DB - data_mapper 中似乎存在更改数据结构和使用旧数据的错误。对我来说,删除数据库并设置新数据库后,该错误就消失了。

于 2012-12-26T00:13:09.853 回答
1

您使用的是哪个版本的 ruby​​,因为如果您使用的版本低于 1.9,则必须不使用=>哈希构造函数:并将冒号移到开头,因为它是一个符号。

User.create :username => "JoeSchmo", :email => "joe@schmo.com"
于 2012-09-10T09:10:33.217 回答
0

我对 Sinatra 和 datamapper 也有同样的问题。使用“new”关键字而不是“create”创建我的记录,然后一一添加属性对我有用。希望你觉得它有用。

于 2013-12-13T15:29:15.003 回答