Я связался со службой поддержки JXBrowser. Они предложили использовать системное свойство jxbrowser.threads.configureContextClassLoader
, как описано здесь https://jxbrowser.support.teamdev.com/support/discussions/topics/9000044535 .
Установка его в значение true устранила проблему.
Во-первых, необходимо действительно использовать: включайте вместо: соединения
User.find(:all, :include => { :abuse_reports => [ :game ] }, :order => )
или в Вашем случае попробовать
User.page(params[:page], :include => { :abuse_reports => [ :game ] })
Это выполнит соединение для Вас и получит записи в одном выстреле.
Теперь, это может получить данную игровую запись для Вас многократно (если та же игра связывается с пользователем несколькими отчетами.), Если Ваша игровая запись является большой, можно уменьшить объем данных, которым обмениваются между приложением и RDBMS следующим образом:
class User < ActiveRecord::Base
has_many :abuse_reports
has_many :abused_games, :through => :abuse_reports
end
...
User.find(:all, :include => [ :abuse_reports, :abused_games ])
Наконец, Вы также хотите получить количества и вид соответственно. Проверьте http://railscasts.com/episodes/23 для того, как добавить встречные кэши в фактические активные записи (встречные кэши упрощают SQL и делают жизнь RDBMS легче и Ваши запросы выполненный быстрее). После установки встречных кэшей можно наконец изменить вышеупомянутое, чтобы сделать:
User.find(:all, :include => [ :abuse_reports, :abused_games ], :order => 'users.abused_games_count DESC, users.abuse_reports_count DESC')
Это в конечном счете получит Ваш ActiveRecords в одном единственном, простом SQL-операторе.
Проблема, которую Вы имеете, состоит в том, что Вы используете ActiveRecord способом, который, как не "предполагают", использовался. Этим я подразумеваю, что Вы пишете свой собственный sql, который заставляет AR бросить все свое управление Вам.
Если Вы хотите, чтобы AR обработал все, что необходимо попытаться использовать его с меньшим количеством собственного SQL там. Похоже, что Вы хотите знать, у какого пользователя есть самое высокое количество AbuseReports. Попробуйте что-то вроде этого:
some_user.abuse_reports.count
получить количество abuse_reports