Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 September 11

VS

Viacheslav Stepanov in Ruby, Rails, Hanami | dry-rb
но имхо лучше группировать только по playlist.id, так получаем все подходящие плейлисты, а потом когда проваливаешься в плейлист - фильтровать книги в этом плейлисте
источник

VS

Viacheslav Stepanov in Ruby, Rails, Hanami | dry-rb
Books.select('playlists.id as playlist_id, count(books.*) as cnt').group('playlists.id').joins(playlists, :subscriptions).where(subscriptions: { territory: user.territory}).order('playlists.id').map { |tuple| [tuple.playlist_id, tuple.cnt]}
источник

VS

Viacheslav Stepanov in Ruby, Rails, Hanami | dry-rb
выдаст пары [ плейлист id, количество удовлетворяющих where условию книг]
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
только сдается мне что пользы от свех этих страданий не будет 🙂
источник

RU

Roman Ustuantsev in Ruby, Rails, Hanami | dry-rb
Антон Дьячук
только сдается мне что пользы от свех этих страданий не будет 🙂
нет, не особо
мне потом все равно нужно плейлисты с книгами вернуть нужно
то есть, еще один фильтр
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
@drougojrom Есть пробел в понимание AR - потому что как бы не фильтровал плейлисты, то обращаясь playlist.books будет возвращать все книги. И чтобы сразу не получить хейт насчет душности - делаешь скоуп у Books licensed_in_region, там фильтруешь по региону - where(license: { region: user_region }). И получение книг будет в два этапа - выбираешь плейлисты, у которых есть книги в регионе(тут вроде ты смог сделать), и потом через скоуп получаешь licensed_in_region
источник

RU

Roman Ustuantsev in Ruby, Rails, Hanami | dry-rb
Alexander Susikov
@drougojrom Есть пробел в понимание AR - потому что как бы не фильтровал плейлисты, то обращаясь playlist.books будет возвращать все книги. И чтобы сразу не получить хейт насчет душности - делаешь скоуп у Books licensed_in_region, там фильтруешь по региону - where(license: { region: user_region }). И получение книг будет в два этапа - выбираешь плейлисты, у которых есть книги в регионе(тут вроде ты смог сделать), и потом через скоуп получаешь licensed_in_region
я поэтому и написал в исходном вопросе, что не уверен, относится ли он в полной мере к AR или это что-то другое

вполне возможно, что просто смотрю не туда
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Это если через Playlist надо получить, но лучше делать через модель Books и join, ибо в варианте через Playlist получишь n+1 если забудешь про includes
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Roman Ustuantsev
я поэтому и написал в исходном вопросе, что не уверен, относится ли он в полной мере к AR или это что-то другое

вполне возможно, что просто смотрю не туда
Ну вот попробуй скоуп у модели Books, похоже это то что ты хочешь
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
Антон Дьячук
третий день в рубишном чате обсуждают алгоритмы, варианты, проблемы производительности на руби
с вами все в порядке ребят?
Руби жив?
да, прямо глаз радуется!
источник

RU

Roman Ustuantsev in Ruby, Rails, Hanami | dry-rb
Alexander Susikov
Ну вот попробуй скоуп у модели Books, похоже это то что ты хочешь
скоуп у меня есть, но он же книги возвращает, а не плейлисты

я согласен с комментариями выше, что временная таблица выглядит, мягко говорят, спорным решением, однако в таком случае я заполняю плейлисты только тем, что доступно
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
так и плейлистов у тебя нет, только айдишникии
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
И их нет, только байтики
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
ничего нет
источник

RU

Roman Ustuantsev in Ruby, Rails, Hanami | dry-rb
Alexander Susikov
И их нет, только байтики
и их нет, только движения частиц
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Roman Ustuantsev
скоуп у меня есть, но он же книги возвращает, а не плейлисты

я согласен с комментариями выше, что временная таблица выглядит, мягко говорят, спорным решением, однако в таком случае я заполняю плейлисты только тем, что доступно
Давай так, какая задача изначально? Как я понял получить для пользователя плейлисты с книгами, которые доступны для него и вернуть книги только те что доступны для него, так?
источник

NG

Nikkie Grom in Ruby, Rails, Hanami | dry-rb
Roman Ustuantsev
и их нет, только движения частиц
и их нет, это все симуляция
источник

RU

Roman Ustuantsev in Ruby, Rails, Hanami | dry-rb
Alexander Susikov
Давай так, какая задача изначально? Как я понял получить для пользователя плейлисты с книгами, которые доступны для него и вернуть книги только те что доступны для него, так?
да
из кучи плейлистов вернуть все плейлисты, где из кучи книг доступны только те, на которые есть лицензии, совпадающие по территории с территорией текущего юзера
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Так вот о чем я говорил
источник