2012-07-23 46 views
5

我使用DataMapper的寶石與西納特拉和遵循這裏的教程: http://net.tutsplus.com/tutorials/ruby/ruby-for-newbies-working-with-datamapper/機架::林特:: LintError:狀態必須爲> = 100看作整數

我連接到數據庫,並遷移這樣:

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: "[email protected]" 

我收到的錯誤:

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

任何想法,爲什麼發生這種情況?

+0

是否有其他Rack中間件安裝?你可以添加你的應用程序中的'require'語句嗎?你的寶石是否是最新的?請儘可能包括版本。 – Kashyap 2012-07-24 06:31:16

+0

我在處理具有子類的DataMapper對象時遇到了同樣的錯誤。你在做任何繼承或繼承嗎? – AlexQueue 2012-07-31 21:31:06

+0

任何答案呢?我有同樣的問題。 – mattl 2012-09-10 08:46:16

回答

1

您使用的是什麼版本的ruby,因爲如果您的版本低於1.9,您必須使用=>哈希構造函數而不是:,並將冒號移動到開頭,因爲它是一個符號。

User.create :username => "JoeSchmo", :email => "[email protected]" 
3

嘗試刪除SQLite數據庫 - 似乎有一個data_mapper中的錯誤,改變數據結構和使用舊數據。對我來說,刪除數據庫並設置新數據庫後,該錯誤消失了。

0

我與Sinatra和datamapper有同樣的問題。使用「新」關鍵字創建我的記錄而不是「創建」,然後逐個添加屬性爲我工作。希望你覺得它有用。

相關問題