
Максим
28.12.2017
09:31:22
не модель
там кстати на самом деле были зелёные листья на фоне но друг клёво умеет в лайтрум

Zamira
28.12.2017
09:32:07
В модельном бизнесе ты поднялся бы ?

Google

Максим
28.12.2017
09:32:15
ох, спасибо, засмущали

Anton
28.12.2017
09:32:23

Максим
28.12.2017
09:32:33
да электронную я думаю пробелмы нет скачать

Anton
28.12.2017
09:32:41
+ не надо ее читать, что бы писать интерпретаторы

Максим
28.12.2017
09:32:43
просто почему то мне научную литературу легче в руках читаь
вот худ лит могу с экрана, а научную ток с рук

Anton
28.12.2017
09:33:28

Максим
28.12.2017
09:33:31
круды всю жизнь писат не хочу

Anton
28.12.2017
09:34:38
Да и их по разному писать можно

Aleksandr
28.12.2017
09:51:48
есть какие книги?
есть еще https://www.ozon.ru/context/detail/id/23941520/, там как раз примеры кода на ruby

Google

Alexander
28.12.2017
10:59:00
@Qew7777 да, лучше иди в модели. программирование - для аутистов

Максим
28.12.2017
10:59:16
но я аутист...

Alexander
28.12.2017
10:59:50

Максим
28.12.2017
11:00:01
ухх
повеяло сразу белым бомбером и кожаными перчатками без пальцев

melancholiac
28.12.2017
14:59:43
есть хорошя книга по рубям?

alteregoizm
28.12.2017
15:02:21

No
28.12.2017
16:12:47
Ребятки
Как всегда хитрый и интересный вопрос
Я их в последнее время ловлю стабильно по КД
Мне прилетает GET запрос с параметром
В параметре есть символ '
В строке
На каком-то этапе (я так понимаю это делает Rack) символ ' заменяется на %27
И это правильно, всё круто
Но мне надо найти место, где это происходит
Кто-то подскажет, куда и как копать?

Fedor
28.12.2017
16:43:33
Втыкаешь pry в контроллер и клацаешь up, пока не найдешь )
Вангую, что тебе нужен env, который берется из rack

Google

Fedor
28.12.2017
16:44:15
Там мидлваря специальная есть, но я ее не помню

Roman
28.12.2017
16:55:11
Всем привет, есть такой метод:
def all_product_modificators
modificators = []
unless self.modificators.nil? || self.modificators.blank?
self.modificators.each do |modificator|
modificators << modificator if modificator.modificators.blank?
modificators += modificator.all_modificators
end
end
modificators.uniq
endи он выполняется ну очень долго, запросов в базу 100500, можно ли это как-то оптимизировать инструментами ActiveRecord?
в all_modificators похожая логика и он вызывается рекурсивно

Alexander
28.12.2017
16:57:43
О боже

Roman
28.12.2017
16:58:11
:(

Alexander
28.12.2017
16:58:37
N+1 problem

Roman
28.12.2017
16:58:46
да, я понимаю

No
28.12.2017
16:58:49
в терминах бизнес логики, а не в терминах модификаторов каких-то

Roman
28.12.2017
16:59:50
получить все модификаторы продукта + все модификаторы других модификаторов, у которых произвольная вложенность

No
28.12.2017
17:00:39
includes не выйдет
вложенность же бесконечна
сек, думаю

Roman
28.12.2017
17:02:32
неужели придется sql ковырять?

Alexander
28.12.2017
17:03:13

No
28.12.2017
17:03:22
ну если SQL - там есть варианты, но они сложные
не рекомендую, пока не потребуется по перфомансу

Roman
28.12.2017
17:04:38
ну запросы реально долгие, секунд по 5

No
28.12.2017
17:04:43
короче смотри

Google

No
28.12.2017
17:04:46
я кидаю идею
она примерно такая же
но возможно прокатит

Alexander
28.12.2017
17:04:57
Вообще я в каком то геме видел метод self and descendants
Вот он может тебе поможет

Roman
28.12.2017
17:06:00

Alexander
28.12.2017
17:06:55

No
28.12.2017
17:07:46
modificator_ids = []
last_iteration = product.modificators.ids
modificator_ids « last_iteration
loop do
last_iteration = Modificator.where(modificator_id: last_iteration.ids).ids
break if last_iteration.empty?
modificator_ids « last_iteration
end
Modificator.where(id: modificator_ids)
end
Это не избавит тебя от вложенности
И от N+1
Но должно ускорить
Переменные названы криво, ничего не оптимизировал, просто на уровне идеи

Roman
28.12.2017
17:08:51
я понял, спасибо, попробуем
а что насчет https://github.com/stefankroes/ancestry ?
может помочь?

No
28.12.2017
17:10:15
может
вернее даже должен
но когда я его интегрировал - были какие-то проблемы, я в итоге его выпилил
но мне не надо было обходить всё дерево, проблемы были с другим

Roman
28.12.2017
17:11:18
а он запросы как делает? всё одним достает?

Google

Roman
28.12.2017
17:11:28
от n + 1 хотя бы избавит?

No
28.12.2017
17:11:32
без понятия, надо лезть внутрь
я не в курсе

vladimir
28.12.2017
17:11:46
у него есть колонка родитель
а достает он like id_parent/%
одним запросом
следующие дети будут id_parent/id_parent2
n+1 не будет короче
гем норм

Roman
28.12.2017
17:13:22
ок, спасибо, тогда скорее всего постараюсь его прикрутить

vladimir
28.12.2017
17:20:42
а что в итоге то получить надо? мб ты свернул не туда
есть продукты, модификаторы, у которых есть модификаторы у которых модификаторы и так далее?

Roman
28.12.2017
17:23:22
кароче, есть продукт(блюдо), у него есть модификаторы а-ля "принести первым", "принести горячим", эти модификаторы могут быть группами, в которых могут содержаться одиночные и группы, в которых своя вложенность и тд. Нужно получить все одиночные модификаторы
на выходе это просто массив модификаторов

No
28.12.2017
17:26:55
так, на всякий случай
вернее подходит, с некоторой доработкой