2010-12-05 15 views
0

Ich habe ein Problem mit der Elixir deklarativen Schicht; Ich möchte für jede Instanz meines Modells abzurufen, die Daten einer bestimmten Spalte, wie folgt aus:query.values ​​schlägt mit Elixir fehl

File.query.values("column") 

Die Sache ist, es funktioniert nur mit gefilterten Abfragen, mit der einfachen Abfrage des Beispiels es nicht mit dieser Fehler:

Could not locate a bind configured on SQL expression or this Session 

diese Art sieht aus wie ein Fehler in Elixir, aber ich andernfalls eine Abhilfe zu finden, und vielleicht total ich etwas in der Art und Weise übersehen es funktionieren soll.

Antwort

2

verwenden Sie das Formular

File.query.values(Table.column) 

und sollte es funktionieren. Es gibt einen Generator zurück, also wickle mit list() um eine Sequenz zu erhalten. Sehen Sie dieses Beispiel interaktive Ausgabe:

>>> User.query.values('display_name') 
Traceback (most recent call last): 
    File "<console>", line 1, in ? 
[snip traceback] 
UnboundExecutionError: Could not locate a bind [ ... ] or this Session 
>>> User.query.values(User.display_name).next() 
(u'Vinay Sajip',) 

BTW ist es nicht besonders ein Elixir Problem - die Abfrage von einem Elixir Unternehmen query-Eigenschaft zurückgegeben wird, ist ein Standard-SQLAlchemy Abfrageobjekt. Beachten Sie die SQLAlchemy Dokumentation für Query.values ​​():

Return ein Iterator Nachgeben Ergebnis Tupeln auf die gegebene Liste entsprechenden von Spalten