2012-07-23 7 views
5

Ich bin mit dem DataMapper Juwel mit Sinatra und folgte dem Tutorial hier: http://net.tutsplus.com/tutorials/ruby/ruby-for-newbies-working-with-datamapper/Rack-:: Lint :: LintError: Status muss> = 100 als ganze Zahl gesehen

ich in die Datenbank anschließe und Migration als solche :

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

Mein Datenmodell:

class User 
    include DataMapper::Resource 

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

ich mit diesem Befehl bin Ausführung:

rackup config.ru 

Allerdings, wenn ich auf diese Linie erhalten:

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

erhalte ich die Fehlermeldung:

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

Jede Idee, warum dies geschieht?

+0

Gibt es noch andere Rack-Middlewares? Können Sie die 'require'-Anweisungen aus Ihrer App hinzufügen? Und sind deine Edelsteine ​​up-to-date? Bitte geben Sie wenn möglich Versionen an. – Kashyap

+0

Ich bekam denselben Fehler, wenn ich mit DataMapper-Objekten, die Unterklassen hatten, zu tun hatte. Machst du Unterklassen oder Vererbung? – AlexQueue

+0

noch keine Antworten? Ich habe das gleiche Problem. – mattl

Antwort

1

In welcher Version von Ruby sind Sie, denn wenn Sie unter 1.9 sind, müssen Sie den Hash-Konstruktor => nicht : verwenden und den Doppelpunkt an den Anfang verschieben, weil es ein Symbol ist.

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

Versuchen Sie, die SQLite DB zu löschen - es scheint, mit der Änderung der Datenstruktur und mit alten Daten ein Fehler in data_mapper zu sein. Für mich ging der Fehler nach dem Löschen der db und dem Einrichten eines neuen ab.

0

Ich hatte das gleiche Problem mit Sinatra und Datamapper. Das Erstellen meiner Datensätze mit dem Schlüsselwort "new" anstelle von "create" und das anschließende Hinzufügen von Attributen funktionierte für mich. Ich hoffe, Sie finden es nützlich.