ruby on rails - Transform SQL query to ActiveRecord Query -


issue: don't know how convert postgresql query:

select news_id, sum(case when likes.like 1 else -1 end) max_positive likes group by(news_id) order by(max_positive) desc 

to activerecord query.

what tried:

like.group(:news_id)     .sum('case when likes.like 1 else -1 end')     .max_by { |_k, v| v } 

but result array , not select news_id.

like this?

like.group(:news_id).select("news_id, sum(case when likes.like 1 else -1 end) max_positive").order("max_positive desc") 

Comments