Ich führe eine Abfrage mit einem Bereich und einigen Bedingungen. Etwas wie folgt aus:Eine berechnete Spalte zu einer ActiveRecord Abfrage hinzufügen
conditions[:offset] = (options[:page].to_i - 1) * PAGE_SIZE unless options[:page].blank?
conditions[:limit] = options[:limit] ||= PAGE_SIZE
scope = Promo.enabled.active
results = scope.all conditions
Ich mag würde eine berechnete Spalte zu der Abfrage hinzufügen (an dem Punkt, wenn ich jetzt anrufen scope.all). Etwa wie folgt:
(ACOS (least (1, COS (0,71106459055501) * COS (-1,2915436464758) * COS (RADIANS (addresses.lat)) * COS (RADIANS (addresses.lng)) + COS (0,71106459055501) * SIN (-1.291543646475) * COS (RADIANS (adressen.lat)) * SIN (RADIANS (adressen.lng)) + SIN (0.71106459055501) * SIN (RADIANS (adressen.lat)))) * 3963.19) als accurate_distance
Gibt es eine Möglichkeit, das zu tun, ohne nur find_by_sql zu verwenden und die gesamte vorhandene Abfrage neu zu schreiben?
Danke!
Möchten Sie diese berechnete Menge zum SELECT-Teil der Anweisung oder als Teil einer Bedingung hinzufügen? Auch, was ist die Datenbank? – bradheintz
Als Teil der Select-Anweisung – rmw