Adding a computed column to an ActiveRecord query
Posted
by
bmwbzz
on Stack Overflow
See other posts from Stack Overflow
or by bmwbzz
Published on 2011-01-14T02:47:47Z
Indexed on
2011/01/14
2:53 UTC
Read the original article
Hit count: 263
Hi,
I am running a query using a scope and some conditions. Something like this:
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
I'd like to add a computed column to the query (at the point when I'm now calling scope.all). Something like this:
(ACOS(least(1,COS(0.71106459055501)*COS(-1.2915436464758)*COS(RADIANS(addresses.lat))*COS(RADIANS(addresses.lng))+ COS(0.71106459055501)*SIN(-1.2915436464758)*COS(RADIANS(addresses.lat))*SIN(RADIANS(addresses.lng))+ SIN(0.71106459055501)*SIN(RADIANS(addresses.lat))))*3963.19) as accurate_distance
Is there a way to do that without just using find_by_sql and rewriting the whole existing query?
Thanks!
© Stack Overflow or respective owner