【问题标题】:Rack::Lint::LintError: Status must be >=100 seen as integerRack::Lint::LintError: 状态必须 >=100 视为整数
【发布时间】:2012-07-21 11:20:45
【问题描述】:

我将 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

知道为什么会这样吗?

【问题讨论】:

  • 还有其他 Rack 中间件设置吗?您可以从您的应用程序中添加require 语句吗?您的宝石是最新的吗?如果可能,请包括版本。
  • 我在处理具有子类的 DataMapper 对象时遇到了同样的错误。你在做任何子类化或继承吗?
  • 对此有任何答案吗?我也有同样的问题。
  • 我遇到了同样的问题,这是由 DataMapper 错误引起的。试试begin; User.create(username: "foo", email: "abc@def.com"); rescue => e; return e.inspect; end 看看它输出了什么。

标签: sqlite sinatra datamapper


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我在使用 Sinatra 和 datamapper 时遇到了同样的问题。使用“new”关键字而不是“create”创建我的记录,然后一一添加属性对我有用。希望对您有用。

      【讨论】:

        猜你喜欢
        • 2011-12-03
        • 2015-11-08
        • 2012-08-30
        • 2018-09-30
        • 2015-07-23
        • 2022-01-26
        • 1970-01-01
        • 2011-01-31
        • 2012-10-09
        相关资源
        最近更新 更多