Я выполняю запрос, используя область действия и некоторые условия.Примерно так:
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
Я бы хотел добавить вычисляемый столбец в запрос (в тот момент, когда я сейчас вызываю scope.all).Примерно так:
(ACOS (минимум (1, COS (0.71106459055501) * * COS (-1.2915436464758) * COS (RADIANS (address.lat)) * COS (RADIANS (address.lng)) + COS (0,71106459055501) * SIN (-1.2915436464758) * COS (RADIANS (address.lat)) * SIN (RADIANS (address.lng)) + SIN (0,71106459055501) * SIN (RADIANS (address.lat)))) * 3963.19) как точный_диски
Есть ли способ сделать это, не используя просто find_by_sql и переписав весь существующий запрос?
Спасибо!