Ну, самое простое решение, вероятно, будет User.all.select{|user| user.score > 50}
. Очевидно, что это очень неэффективно, вытаскивая каждую запись пользователя из базы данных.
Если вы хотите выполнить запрос, связанный с оценкой, почему бы вам не добавить столбец score
в таблицу пользователей? Вы можете обновить его всякий раз, когда all_scores
изменяется.
class User < AR::Base
before_save :set_score, :if => :all_scores_changed?
protected
def set_score
self.score = ActiveSupport::JSON.decode(self.all_scores)["local"] rescue nil
end
end
Это также позволит избежать постоянной десериализации данных JSON при каждом обращении к user#score
.