[英]Sorting JSON with values from database in Rails
考慮以下情況
我有一個數據庫表如下
user_id user_rank
------------------
22 10
32 9
43 7
31 6
並且我有一個具有用戶ID的JSON對象(為簡單起見,隱藏了JSON中的其他節點,請考慮此響應來自api)
{"user_id":[31,22,43,32]}
現在,如何根據數據庫中user_id的排名對JSON結果進行排序,並產生類似
{"user_id":[22,32,43,31]}
有像LINQ一樣的東西在rails中,以便我可以在其中保存json對象的值,並使對象與數據庫表之間建立連接以獲得排序后的json嗎?
如果您在json中有用戶ID,則:
require 'json'
user_hash = JSON.parse('{"user_id":[31,22,43,32]}') => {"user_id"=>[31, 22, 43, 32]}
users = User.all(:conditions=>["id in ?",user_hash[:user_id]])
sort_user_id = users.sort { |x, y| (x.user_rank|| 0 )<=> (y.user_rank|| 0)}.map(&:id)
{:user_id => sort_user_id}.to_json
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.