@proRuby

Страница 460 из 1594
I
27.02.2017
13:47:48
кстати, а bullet никому не помогает что ли от N+1??

Nikolay
27.02.2017
13:47:50
в 95% случаев AMS очень просто все делает, в оставшихся 5% надо мозгами пошевелить

Lupsick
27.02.2017
13:47:54
Берёшь все данные из бд и сериализуешь dry-types

Nikolay
27.02.2017
13:48:00
кстати, а bullet никому не помогает что ли от N+1??
он помогает найти их, а пофиксить только самые простые

Google
Ilya
27.02.2017
13:48:34
Только что протестил, взял includes

вызвал ассоциацию

потом flat_map(&:....).map(&:attributes)

в базу никто не ходил

Lupsick
27.02.2017
13:49:15
Норм вкач

Ilya
27.02.2017
13:49:17
логи чистые

Lupsick
27.02.2017
13:49:34
Вот бы щас методы повызывать

Ilya
27.02.2017
13:49:50
ну это просто методы, которые вызывают ассоциацию

parents = Parent.includes(:child).limit(5)

Lupsick
27.02.2017
13:50:19
И так у тебя в 90% случаев в твоём коде

Так себе идея

Ilya
27.02.2017
13:50:46
parents.flat_map(&:childs).map(&:attributes)

Google
Ilya
27.02.2017
13:50:57
все

куча кода ?

Lupsick
27.02.2017
13:51:18
Ща я домой приду кину тебе код

Ilya
27.02.2017
13:52:16
просто я не понял весь этот гон на includes

нормально он работает, если юзать так, как написано в доках

проблема может быть, если трансформировать релейшн в массив

тогда да

Lupsick
27.02.2017
13:53:54
В моем понимании если я хочу данные из джоин то я должен их сразу и получать

Ilya
27.02.2017
13:54:02
ну так напиши SQL

Lupsick
27.02.2017
13:54:20
Ну так а нахуй AR тогда лол

Ilya
27.02.2017
13:54:21
это самый короткий способ

Dima
27.02.2017
13:54:21
Лол

Ilya
27.02.2017
13:54:36
AR не решит все твои проблемы

Lupsick
27.02.2017
13:54:37
Зачем мне эти сложности если я могу взять sequel и просто не ебаться

Sequel решает

ojab
27.02.2017
13:54:58
или заюзать .eager_load, ага

Lupsick
27.02.2017
13:55:09
или заюзать .eager_load, ага
В каждом запросе ага

Побольше бы кода пописать

ojab
27.02.2017
13:55:27
в default scope, очевидно, если данные нужны в каждом запросе

Google
Lupsick
27.02.2017
13:55:59
Или другие проблемы

Потому что он не сбрасывает скоуп

ojab
27.02.2017
13:56:17
антипаттерн
я тоже знаю много умных слов

Lupsick
27.02.2017
13:56:23
Ну он прав

Дефолт скоуп это очень плохая штука

ojab
27.02.2017
13:56:52
И в active_admin получать кашу например
т. е. active_admin криво работает с AR и это проблема AR?

Lupsick
27.02.2017
13:57:07
Я тебе привёл пример

То что так лучше не делать

Alexander
27.02.2017
13:57:21
я тоже знаю много умных слов
и что? охуеть полезная инфа

Dima
27.02.2017
13:57:50
А началось все просто с обращения ханами

ojab
27.02.2017
13:57:50
А я говорил что default scope хорошая штука? В данном случае она решает проблему. Не нравится default_scope — можно заюзать не-default.

Lupsick
27.02.2017
13:58:10
А ну вот бы ещё кода пописать

Ilya
27.02.2017
13:58:10
default scope это то, что сработает в любом случае. Напиши обычный скоуп и вызывай его явно. Ваша погоня за меньшим количеством буковок приносит головную боль остальным разработчикам

Dima
27.02.2017
13:58:13
Обсуждения

Lupsick
27.02.2017
13:58:14
Однотипного

ojab
27.02.2017
13:58:26
Я тебе привёл пример
Не вижу примера. Вижу "active_admin криво работает с AR, поэтому не нужно юзать default_scope".

и что? охуеть полезная инфа
спасибо за полезный комментарий, побольше бы таких

Lupsick
27.02.2017
13:58:57
Дефолт скоуп порождает дефолтное поведение там где оно не предполагалось например

Alex
27.02.2017
13:59:15
дефолтный скоуп порождает зло.

Google
Lupsick
27.02.2017
13:59:22
И в итоге ты сидишь дебажишь какую то парашу непонятную

Dima
27.02.2017
14:00:01
Ожаб ты предложил очень плохое решение.

ojab
27.02.2017
14:00:41
Никто не говорит, что default_scope решает все проблемы и вообще хорошая вещь, но пока что ни одного аргумента против не прозвучало. (если не считать реплику "антипаттерн" аргументом)

Lupsick
27.02.2017
14:00:50
Нравится писать дохуя однотипного кода - пожалуйста, мне не нравится

Ilya
27.02.2017
14:01:10
я пишу MyClass.all

а получаю говно

Ilya
27.02.2017
14:01:35
иду в другую таблицу, делаю тяжелый джоин

я просто хотел MyClass.all

Admin
ERROR: S client not available

ojab
27.02.2017
14:01:47
Это не аргумент?
Если gem криво работает с AR — это не проблема AR.

Ilya
27.02.2017
14:02:03
это не AR issue

ojab
27.02.2017
14:02:08
(и не проблема default_scope в частности)

Ilya
27.02.2017
14:02:23
просто люди договорились не юзать это

потому что очень сложно дебажить

ты же не описываешь каждый default_scopе в доках прилаги

а телепатов нет

итого, приходит новый разраб на проект

и охуевает

Google
Ilya
27.02.2017
14:03:36
потому что творится черт знает что

ojab
27.02.2017
14:04:13
Если новый разраб не знает базовые вещи в AR — это тоже не проблема AR.

Dima
27.02.2017
14:04:32
Лол

Ilya
27.02.2017
14:04:41
он просто НЕ ТЕЛЕПАТ

Dima
27.02.2017
14:04:48
Скажи еще что у ар нет проблем

Ilya
27.02.2017
14:05:07
у AR есть проблемы, у всего есть проблемы)

ojab
27.02.2017
14:05:14
он просто НЕ ТЕЛЕПАТ
wtf "НЕ ТЕЛЕПАТ"? Без чтения кода не угадал как всё работает?

Dima
27.02.2017
14:05:18
И с каких это пор антипатерн перестал быть аргументом против

Alex
27.02.2017
14:05:35
И с каких это пор антипатерн перестал быть аргументом против
с того момента как мы активно приняли configure

ojab
27.02.2017
14:06:27
С тех пор что "антипаттерн" не несёт никакой смысловой нагрузки, а развернуть определение почему-то никто не в состоянии.

Dima
27.02.2017
14:06:38
Эта хуйня половину гемов сломает. Да, это не проблема ар, но отличный аргумент забыть об этом решении.

ojab
27.02.2017
14:06:50
Ilya
27.02.2017
14:06:58
wtf "НЕ ТЕЛЕПАТ"? Без чтения кода не угадал как всё работает?
он угадает, но держать в голове все default_scopе это можно свихнуться

ojab
27.02.2017
14:08:07
он угадает, но держать в голове все default_scopе это можно свихнуться
А остальной код в голове держать? Или у человека селективное недержание default_scope?

Ruslan
27.02.2017
14:08:30
за дефолтные скоупы надо руки отрывать

Ilya
27.02.2017
14:09:12
class Post default_scope where(published: true).order("created_at desc") end Post.new => #<Post id: nil, title: nil, created_at: nil, updated_at: nil, user_id: nil, published: true>

ojab
27.02.2017
14:09:18
Ilya
27.02.2017
14:09:23
это нормально?

Ruslan
27.02.2017
14:09:30
это хрень какая-то

неочевидная

Ilya
27.02.2017
14:09:40
ты всего лишь создаешь новый объект

Ruslan
27.02.2017
14:09:45
лень написать в нужно запросе скоуп?

Ilya
27.02.2017
14:09:51
и у него поля из default_scope

Страница 460 из 1594