簡體   English   中英

在Rails中使用數據庫中的值對JSON進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM