Сортировка JSON со значениями из базы данных в Rails - PullRequest
0 голосов
/ 03 апреля 2012

Рассмотрим следующую ситуацию

У меня есть таблица базы данных, как показано ниже

user_id user_rank
------------------
22       10
32        9
43        7
31        6

, и у меня есть JSON-объект с идентификатором пользователя, подобным (другие узлы в json скрыты для простоты,рассмотрим этот ответ от API)

{"user_id":[31,22,43,32]} 

Теперь, как мне отсортировать результат JSON на основе ранга user_id в базе данных и получить такой результат, как

{"user_id":[22,32,43,31]}

isесть что-то вроде LINQ в рельсах, так что я могу сохранить в нем значения объекта json и сделать соединение между объектом и таблицей базы данных, чтобы получить отсортированный json?

1 Ответ

0 голосов
/ 03 апреля 2012

Если у вас есть идентификаторы пользователей в json, то:

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

Надеюсь, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...