Вы можете сделать это, используя предложение select, where и order.Предположим, у нас есть таблица с этой схемой:
create_table "leaders", :force => true do |t|
t.integer "leaderable_id"
t.string "leaderable_type"
t.integer "county_id"
t.integer "us_state_id"
t.integer "recruits"
t.integer "hours"
t.datetime "created_at"
t.datetime "updated_at"
t.datetime "last_run_dt"
end
Если вы хотите упорядочить результаты, вы бы запустили такой запрос:
Leader.select("(hours + recruits) as hr").order("hr")
Если вы хотите выбрать записи насумма, то вы можете выполнить запрос, как это:
Leader.select("(hours + recruits) as hr").where("(hours +recruits) > 1100")
Вы можете получить доступ к результату, как:
Leader.select("(hours + recruits) as hr").order("hr").first.hr