Rails соединяются и фильтруются по основным идентификаторам моделей

Принятое решение не работает. Chrome печатал пустую страницу, потому что она не загружала изображение вовремя. Этот подход работает:

Изменить: похоже, принятое решение было изменено после моего сообщения. Почему нисходящий? Это решение работает также.

    function printDiv(divName) {

        var printContents = document.getElementById(divName).innerHTML;
        w = window.open();

        w.document.write(printContents);
        w.document.write('<scr' + 'ipt type="text/javascript">' + 'window.onload = function() { window.print(); window.close(); };' + '</sc' + 'ript>');

        w.document.close(); // necessary for IE >= 10
        w.focus(); // necessary for IE >= 10

        return true;
    }
0
задан user2954587 1 March 2019 в 14:20
поделиться

3 ответа

Мой желаемый результат - присоединиться к fb_posts, но перед тем, как присоединиться, я бы хотел отфильтровать fb_groups по определенным идентификаторам. Как я могу это сделать?

Я использовал fb_groups с id 1, 2 и 3 только для примера

FbGroup.where(id: [1, 2, 3]).joins(:fb_posts).count
0
ответ дан mechnicov 1 March 2019 в 14:20
поделиться

Я думаю, что это дублирование записей в объединениях. Вы должны использовать group_by с соединениями, чтобы устранить это. Попробуйте,

FbGroup.joins(:fb_posts).where('fb_groups.id IN (?)', ids).group('fb_groups.id').length

Пожалуйста, исправьте, если я ошибаюсь.

0
ответ дан Vishal 1 March 2019 в 14:20
поделиться

Почему эти два запроса приводят к разным результатам?

Объединение может привести к записи 1: N (от одного до многих). Например. если у одного FbGroup есть два FbPost, вы получите две записи, когда присоединитесь.

Мой желаемый результат - присоединиться к fb_posts, но перед тем как присоединиться, я бы хотел отфильтровать fb_groups по определенным идентификаторам. Как я могу это сделать?

Ваш второй запрос уже делает это. Когда вы фильтруете с помощью объединения или соединения, а затем фильтруете во внешнем запросе, вы все равно получите те же результаты.

0
ответ дан Lenin Raj Rajasekaran 1 March 2019 в 14:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: