Ruby on rails 我是否可以对两个不同表字段中的值求和,并通过Rails/Active Record对该值进行排序?
我有一个会费和一个捐赠模型。我想按会费+捐款总额的降序排列会员名单。这是active record唯一可以做的事情,还是我必须在应用程序中添加和排序代码Ruby on rails 我是否可以对两个不同表字段中的值求和,并通过Rails/Active Record对该值进行排序?,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,我有一个会费和一个捐赠模型。我想按会费+捐款总额的降序排列会员名单。这是active record唯一可以做的事情,还是我必须在应用程序中添加和排序代码 db is Postgres您可以使用select、where和order子句实现这一点。假设我们有一个具有此模式的表: create_table "leaders", :force => true do |t| t.integer "leaderable_id" t.string "leaderable_typ
db is Postgres您可以使用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")
Leader.select("(hours + recruits) as hr").where("(hours +recruits) > 1100")
您可以通过以下方式访问结果:
Leader.select("(hours + recruits) as hr").order("hr").first.hr