2017-03-29 3 views
1

Ich bin neu auf Schienen. Ich versuche, einen Bereich mit Where-Klausel zu erstellen. In dieser Where-Klausel möchte ich Spaltenwerte desselben Modells verwenden. Aber ich kenne den richtigen Weg nicht. Bitte hilf mir. Hier ist der Code-Schnipsel:Rails: Hinzufügen von Bereich in einem Modell mit Spaltenwerten des gleichen Modells in Where-Klausel

attr_accessible :booked_qty, 
       :cancelled_qty, 
       :quantity_shipped 

Dies ist der Rahmen, die ich zu schaffen versuche:

scope :shipped_qty_less_than_max_tolerance_qty, where("quantity_shipped < ?",self.booked_qty-self.cancelled_qty) 

Also, was ist der beste Weg, diesen Bereich zu schreiben? Danke im Voraus!

+0

ref link: http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Named/ClassMethods.html –

+0

Sind 'quantity_shipped' und die anderen Spalten in der db oder spezielle Methoden im Modell? – Iceman

+0

Sie sind alle in db. @iceman – Akshay

Antwort

0

Nach dem Besuch alle möglichen Verbindungen zu überprüfen und verschiedene Möglichkeiten hier auszuprobieren ist, was für mich gearbeitet:

scope :shipped_qty_less_than_max_tolerance_qty, where("quantity_shipped < booked_qty-cancelled_qty") 

Vielen Dank für ihre Unterstützung. Cheers!

-1

Der Umfang ist richtig, wenn Sie mehr über Bereiche herausfinden, müssen in sicher sein Rails Guides v3.2

+0

Bereich war nicht korrekt Kumpel, deshalb fragte ich. Wie auch immer, danke für die Hilfe. Diese Verbindung hat mir geholfen, Bereiche besser zu verstehen. – Akshay

Verwandte Themen