Size: a a a

Saint P Ruby Community

2020 January 27

NS

Nikita Shilnikov in Saint P Ruby Community
в смысле без направления сортировки
источник

AG

Alex G in Saint P Ruby Community
ага, я понял, но как раз надо реверснуть
источник

NS

Nikita Shilnikov in Saint P Ruby Community
repo.users.union(repo.users).order { name.meta(qualified: false, sql_expr: nil).desc } 🙈
источник

AG

Alex G in Saint P Ruby Community
ну, с сиквелом я попробую.
А подскажи, плз, про combine.

В этих 2-х таблицах есть общий внешний ключ на 3-ю (допустим это user_id)
Можно ли сделать combine(:user) после union?

У меня получается, если я указываю alias: one.union(two, alias: 'one').combine(:user), а в релейшене one, прописана ассоциация.
Можно ли делать combine без ассоциаций?
источник

NS

Nikita Shilnikov in Saint P Ruby Community
просто не помню. Теоретически конечно можно
источник

AG

Alex G in Saint P Ruby Community
Если вдруг кому-нибудь захочется отвлечься от своей работы и подумать над чужой, то вот вопрос.

Есть отзывы о пользователе, которые отдаются по апи с пагинацией (дата/время, текст, оценка, имя пользователя).
Надо в них подмешать какие-то "действия" самого пользователя и отдать их, как отзывы, чтобы фронт ничего не заметил.

У действия всегда будет имя, допустим, "system", оценка всегда нейтральная, дата/время из базы, а вот текст надо формировать в зависимости от параметров самого действия. В идеале его надо доставать из базы со всеми его атрибутами и парой ассоциаций, а не так как я показал выше.

Как бы вы решали такую задачу, чтобы не было проблемы n+1?  (AR нет, есть rom-sql, postgres)
источник

AG

Alex G in Saint P Ruby Community
наверное, это можно заюзать как тестовое задание/вопрос :)
источник

MI

Maxim Indykov in Saint P Ruby Community
например, засунул бы действия в отзыве в json поле
источник

SZ

Slava Zharkov in Saint P Ruby Community
не очень понятна цель такой задачи, но как вариант можно было бы сделать в постгре вьюху или материализованную вьху(в зависимости от нужной актуальности) чтобы можно было их нормально вместе пагинировать и сортировать.
источник

IK

Igor Khodyrev in Saint P Ruby Community
Самый простой способ - union all двух табличек, order, limit + offset. Ну а если уже надо оптимизировать, то, вероятно, materialized view или генерировать табличку с таким списком по тем двум.
В остальных случаях пагинацию вроде как легко и не сделать.
n+1, если вдруг не решается стандартными средствами, то отдельно потом самому тем же способом запросить зависимые сущности (по 1 запросу на каждый тип).
источник

w

wi11son in Saint P Ruby Community
#вакансия Ребята, привет, ищу Ruby разработчика себе в Cybergizer, питерский офис (м.Волковская, вот прям в том же здании).
У нас аутсорс, важен неплохой английский.
источник

w

wi11son in Saint P Ruby Community
Чуваки, у меня задачка отобразить на карте мира ~ 7000 объектов
источник

w

wi11son in Saint P Ruby Community
идеальным для меня решением было бы — загрузить в какой-нибудь яндекс или гугл список всех своих точек
источник

w

wi11son in Saint P Ruby Community
чтобы потом карта доставала всё согласно масштабам и делала объединения точек
источник

ЕЗ

Евгений Зубаиров in Saint P Ruby Community
Яндекс так умеет.
источник

w

wi11son in Saint P Ruby Community
объединения, да, но сервер там нужно реализовывать самому
источник

w

wi11son in Saint P Ruby Community
проблема в том, что скормить 7к точек на каждый запрос страницы — ну как бы тяжело
источник

DT

Dmitry Tsepelev in Saint P Ruby Community
а показывать нужно карту мира или можно позволить себе небольшой зум?
источник

w

wi11son in Saint P Ruby Community
изначально карту мира, но каждый зум, конечно может делать доп запросы — с этим проблем нет
источник

w

wi11son in Saint P Ruby Community
просто в этом случае мне нужно самому как-то аггрегировать точки и выплёвывать в яндекс не 7 тыщ записей, а скажем,15, но и считать их придется самому
источник