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

Related posts about sql

Related posts about ruby-on-rails