Ich möchte, dass @ messages @ folder.messages zurückgibt, wobei der Wert der Spalte "deleted" NICHT gleich true ist. Ich bin mir nicht sicher, warum dies eine SQLException wirft. Ich denke, dass ich das gelöschte Attribut nicht richtig formatiere, aber ich bin nicht sicher, wie ich es beheben soll.
Jede Hilfe wird sehr geschätzt. Danke im Voraus.
Fehlermeldung:
%Vor%Anwendungsablauf:
%Vor%Mailbox_Controller.rb
%Vor%SQLite verwendet C boolesche Werte :
SQLite hat keine separate boolesche Speicherklasse. Stattdessen werden boolesche Werte als Ganzzahlen 0 (falsch) und 1 (wahr) gespeichert.
Also, wenn du das sagst:
%Vor% SQLite weiß nicht, was true
ist, daher wird angenommen, dass Sie versuchen, auf einen anderen Spaltennamen zu verweisen.
Der richtige Weg, um damit fertig zu werden, besteht darin, dass AR Ihren Ruby-Boolean in einen SQLite-Booleschen Wert konvertiert (wie in den Antworten von Tam und fl00r). Ich denke, es ist nützlich zu wissen, was du falsch machst.
AKTUALISIEREN : Wenn Sie nach nicht wahrem deleted
suchen und NULL einschließen möchten, sollten Sie Folgendes tun:
Oder besser, erlauben Sie NULLs in deleted
überhaupt nicht. Sie sollten nicht zulassen, dass NULL eine Spalte ist, es sei denn, Sie müssen dies unbedingt tun (der Standardwert von ActiveRecord für die NULL-Zulässigkeit ist genau das Gegenteil dessen, was er sein sollte). Der SQL NULL ist ein seltsames Biest und Sie müssen es immer speziell behandeln, am besten, es nicht zuzulassen, es sei denn, Sie benötigen einen "nicht da" oder "nicht spezifiziert" -Wert für eine Spalte.
true
ist für verschiedene Datenbanken unterschiedlich. In einigen ist es t/f
value, und in einigen true/false
, also sollten Sie es in Anführungszeichen setzen und sicher sein, ob es für Ihre bestimmte Datenbank richtig ist, oder Sie sollten es aus Ihrem SQL ausschließen, damit Rails das tut Job für dich.
UPD
Wenn deleted
ist NULL
. Zuerst. Setzen Sie das gelöschte Feld standardmäßig auf false . Zweitens, wie man es mit AR findet:
Tags und Links ruby-on-rails-3 sqlite ruby-on-rails sqlexception sqlite3-ruby