Могу ли я суммировать значения в 2 разных полях таблицы и сортировать их по Rails / Active Record? - PullRequest
1 голос
/ 06 ноября 2011

У меня есть модель DuesPayment и Donation.Я хочу перечислить участников в порядке убывания по сумме взносов + пожертвований.Это что-то, что активная запись может делать исключительно, или мне нужно будет добавить в приложение какой-нибудь код добавления и сортировки?

1 Ответ

2 голосов
/ 06 ноября 2011

Вы можете сделать это, используя предложение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...