
Nikita
14.04.2018
07:26:12
он передает релейшн или что?

Andrey
14.04.2018
07:26:15
массив
просто array

Evgeniy
14.04.2018
07:26:21
Не, он хочет эмулировать релейшн, передавая массив

Google

Nikita
14.04.2018
07:26:31
понял
тогда выше тебе код написали
но в любом случае
нужно массиву этот метод написать

Evgeniy
14.04.2018
07:28:01
просто вопрос, что делает each_instances, я что-то такого метода не нашел в ARR

Andrey
14.04.2018
07:28:40
как мне сказали "это обход курсором, чтоб все в память не грузить"

Evgeniy
14.04.2018
07:30:54
он судя по всему из этого гема
https://github.com/afair/postgresql_cursor

Nikita
14.04.2018
07:30:58

Andrey
14.04.2018
07:32:10
scope.each_instances do |instance|
binding.pry
yield entity_builder.call(instance)
end
где scope это декоратор
но внутрь он не заходит
при коде от Евгения
def each_instances(*args)
object.each(*args)
end

Nikita
14.04.2018
07:34:37
Public: Like each_row, but returns an instantiated model object to the block

Google

Nikita
14.04.2018
07:35:11
each_row: Public: Executes the query, returning each row as a hash
но что each_row, что each_instance
вызывает all
поэтому такое делать в декораторе… хз
лучше из контроллера уже результат декорировать, как по мне
model = klass.send(:instantiate, row, @column_types) в принципе как и предполагалось

Evgeniy
14.04.2018
07:42:04

Nikita
14.04.2018
07:42:52
Это все равно бред в декораторе такое делать, лично мое мнение

Evgeniy
14.04.2018
07:44:15
Кстати там each_instance а не instances и он еще параметр принимает
т.е. что бы это было совместимо
def each_instance(_, &blk) do
object.each &blk
end

Andrey
14.04.2018
07:48:40
спасибо @silentshade @niks123123

Evgeniy
14.04.2018
07:49:28
ну ок, просто в геме вроде как
each_instance
:)

Nikita
14.04.2018
07:49:35
Но я бы все равно не делал такое в декораторе)

Andrey
14.04.2018
07:49:52
а как?

Nikita
14.04.2018
07:50:13
Смотря что тебе нужно сделать :-)

Andrey
14.04.2018
07:50:49
есть массив. мне его надо передать в метод, который потом будет по переданному объекту выполнять each_instances

Nikita
14.04.2018
07:51:19
Почему ты зациклился на этом? Ты лучше скажи какой тебе результат нужен
И в каком кейсе

Google

Evgeniy
14.04.2018
07:52:08
Вообще можно заюзать рефайн, т.к. декорировать массив как-то странно да

Andrey
14.04.2018
07:52:39
выгрузить надо csv файл, для выгрузки написан класс, обычно в него подавали ARR
но в этом случае ARR туда не передать

Lavrushchik
14.04.2018
07:53:01
вопрос. можно как-то задать время хранения записи в бд в рельсах?

Nikita
14.04.2018
07:53:22
Ты же понимаешь, что у тебя н+1 в таком исполнении?
Когда начинает идти по каждому айди цикл

Andrey
14.04.2018
07:54:03
?

Nikita
14.04.2018
07:54:05
Хотя возможно ошибаюсь
Рельса какая?

Andrey
14.04.2018
07:54:35
там же за один запрос вычисляются данные, а потом просто по ним пробегатся и строятся объкты нужные для экспорта
4.2

Evgeniy
14.04.2018
07:54:44
Возможно в массиве уже выбранные инстансы, почему N+1 ?

Nikita
14.04.2018
07:54:57
если в массике инстансы, все ок, если айди, не ок

Andrey
14.04.2018
07:55:21
в массиве инстансы

Nikita
14.04.2018
07:55:34
тогда все огонь

Andrey
14.04.2018
07:55:56
вернемся к декоратору, без него это через рефайн?

Evgeniy
14.04.2018
07:56:06
Либо можно сделать свой класс и отнаследовать его от Array.. если ты его сам инстанциируешь

Andrey
14.04.2018
08:03:09
спасибо. учту эти варианты при обсуждении в понедельник с коллегами

Alex
14.04.2018
09:21:14
Всем привет! Посоветуйте решение. Есть коллеция категорий через гем awesome_nested_set. Категории самого верхнего уровня надо визуально разделить на 2 группы (по типу).
Позицию разделителя нужно менять в админке.
Я вижу это через свойство объекта например boolean типа, но что-то сомневаюсь.
Вводить отдельное поле в базе ради того чтобы разделить только 10 категорий из 300

Google

Alex
14.04.2018
09:21:26
Может кому-то что-то более элегантное придет на ум

Ilya
14.04.2018
09:27:40
ну будет у тебя поле с дефолтным значением false, изменишь на тру где надо, что здесь страшного? если нет другого способа в бд их разделить то это нормальный вариант

Silent Bob
14.04.2018
13:43:40
У меня такой вопрос.
Можно как нибудь использовать Active Model https://github.com/rails/rails/tree/master/activemodel валидации вне контекста объекта?
К примеру как то так:
validates "some string", presence: true
не для рельс, для одного проектика на рубях
похоже dry-ruby подойдет в самый раз http://dry-rb.org/gems/dry-validation/basics/
хотя конечно синтаксис у active model валидаций поприятнее

Anton
14.04.2018
14:04:31

Silent Bob
14.04.2018
15:02:07
А еще такой вопрос, может есть какой готовый гем с коллекцией regex валидаций, типа для url, email, ip и т.д.

Admin
ERROR: S client not available

Антон
15.04.2018
06:24:59
не надо валидировать регекспами
у них внутри возможно регекспы проверенные тысячами контрибьюторов
вот я например в детстве писал статью
https://habrahabr.ru/post/175399/
ну и список доменов верхнего уровня хранить в редисе пара пустяков
и это будет нормальная валидация, а не "емайл совпадает с шаблоном"
127.0.0.1 - айпи шредингера
он какбы валиден, но какбы инвалиден, причем всегда, даже если его пинговать

Mike
15.04.2018
07:14:38
Делать запрос домену, чтобы узнать есть ли MX

Антон
15.04.2018
07:31:45
это уже может быть перебор для обычной регистрации
ну или нужно точно знать, если регистрируется директор банка :)

rekero
15.04.2018
07:46:56
Ну там в статье ловится исключение для кириллических символов, а они же сейчас валидны как адрес

Google

rekero
15.04.2018
07:47:27
Сам обычно гем email_validator юзаю
Есть общие регекспы на почту, ограничения которых в стандарте прописаны

Антон
15.04.2018
07:52:32

rekero
15.04.2018
07:53:57
Письмо.рф

Антон
15.04.2018
07:54:43
а есть еще китайская наверное почта с китайским алфавитом
для истинных патреотов

rekero
15.04.2018
07:55:49
Но как кириллические домены добавили - пользователи появились, хотя и мало

Антон
15.04.2018
07:56:20
вот интересно, письмо.рф сколько дней доставляет сообщение, и где там трекинг? :)

rekero
15.04.2018
07:57:05
1 Работа кириллической почтовой службы реализована в соответствии с документами RFC 4952, RFC 5504, RFC 5335-5337, RFC 5738, RFC 5825, RFC 6530-6533
Во, там даже стандарты указаны
https://yandex.ru/blog/company/31537

Антон
15.04.2018
07:59:27
уже нет исключения
статье 5 лет

rekero
15.04.2018
08:00:01
Ну статья устарела значит
Хотя статья 2013 года, а домены в 2010 появились

Антон
15.04.2018
08:03:47
я бы и сейчас не стал бы поддерживать это извращение
истерически стандарт уже сложился де факто, точка

Shamil
15.04.2018
09:41:26