
Gleb
26.10.2018
13:10:14
кто чем сейчас dry-validation оборачивает? (чтобы делать форм-объекты, а не константы, нормально использовать интернационализацию, в идеале наследоваться уметь)

Black
26.10.2018
13:13:53
Скажите погромисты, просто запрос Model.where(name: ["Иван", "Андрей"], age: [25, 44]). Как сделать так, что искал в последовательно порядке? То есть, Иван 25 сперва, а потом Андрей 44?

Igor
26.10.2018
13:14:44

Alex
26.10.2018
13:15:04

Google

Gleb
26.10.2018
13:15:12

Igor
26.10.2018
13:15:37
Какой кейс на такое?
Схемы вообще вещь такая, что их переиспользовать не стоит, так что звучит необычно

Gleb
26.10.2018
13:16:33
это когда правила валидации стало необычным наследовать? )
Какой кейс на такое?
есть родительская форма, в которой описываются общие правила валидации. есть наследники, в которых описываются частные случаи. используешь наследников в зависимости от ситуации

Igor
26.10.2018
13:17:55
Нюанс в том, что тут не наследование нужно, а композицию. Бонус: в dry-v для некоторых типов схем наследование работает плохо.
Вроде бы в JSON схемах, не помню уже

Gleb
26.10.2018
13:21:37

Igor
26.10.2018
13:23:44
В мире, откуда пришёл dry-validation, наследование вообще не очень популярное решение

Gleb
26.10.2018
13:24:26

Igor
26.10.2018
13:24:33
Про композицию схем — описываешь какие-то мелкие куски и собираешь из них
required(:foo, :hash).schema(MyAwesomeSchema)
можно билдер написать, что угодно
В абстракцию оборачивать — нормально, да

Google

Igor
26.10.2018
13:25:58
Но наследование схем — это что-то не очень естественное
Наследование абстракций, которые используют схему — мб нормально, зависит от абстракции

Gleb
26.10.2018
13:26:35

Igor
26.10.2018
13:26:37
а так — reform же работает с dry-v
Если правила валидации проверяют типы, то я закинул это к наследованию схем

Gleb
26.10.2018
13:27:24
я как-то брал hanami-validations, чтобы самому не выелосипедить, но там тоже все сыро

Anton
26.10.2018
13:28:37
Тут для тебя DI из коробки, а ты противишься

Gleb
26.10.2018
13:29:02

Anton
26.10.2018
13:34:12
Ага, в чем беда? Делаешь папочку с валидациями под контроллеры и в каждом файле константу делаешь с объектом схемы

Gleb
26.10.2018
13:35:17

Anton
26.10.2018
13:36:03
А папка с форм объектами чем тогда лучше? :)

Gleb
26.10.2018
13:38:26

Anton
26.10.2018
13:39:06

Gleb
26.10.2018
13:40:16
ну чувак. хотя бы взять, что мне неудобно каждой схеме объяснять где файл локализации лежит
к тому же, вопрос был о том, кто как делает, а не как правильно )

Vasiliy
26.10.2018
13:42:11
так копипаст же ну

Google

Anton
26.10.2018
13:44:02

Igor
26.10.2018
13:44:12
Можно ж написать базовую схемку, где есть только configure ?

Anton
26.10.2018
13:44:18
(Не наследуются драй валидации)
Во всяком случае там было очень залупно это

Igor
26.10.2018
13:44:47
локаль и type_specs вроде не теряются при наследовании
правила — иногда теряются

Anton
26.10.2018
13:45:07
Про локаль не скажу, правила 100% теряются
Тогда уже проще сделать а-ля экшен ханами
Что бы класс метод был для определения схемы
Который заэвалиться когда и где надо
Ну и наследование это так себе вариант. Даже в джаву уже уходят от него (но это офтоп)

Vasiliy
26.10.2018
13:50:02
чой то
а как же все design patterns с наследованием
AbstractGavno

Anton
26.10.2018
13:51:35
чой то
Сейчас все зависимостями прокидывают

Yegor
26.10.2018
14:55:47
коллеги, вы мне очень помогли вчера. можете помочь еще раз? https://stackoverflow.com/questions/53011200/how-to-check-if-the-file-is-still-locked-by-current-thread
вопрос в том, могу ли я как-то узнать глядя на файл — locked он или нет?

Black
26.10.2018
15:16:49

Yegor
26.10.2018
15:24:49
И вот еще вопрос для Руби программеров, может подскажете: https://stackoverflow.com/questions/53011865/why-flock-works-differently-when-the-file-object-is-new

Roman
26.10.2018
15:32:42

Google

Yegor
26.10.2018
15:32:59
а никто не сталкивался с этим?
почему flock() зависит от того, на каком объекте он вызывается?
он же по идее должен лочить файл, а не объект Руби

Mikhail
26.10.2018
15:33:50
Как ты понял, что второй пример не рабочий?

O
26.10.2018
17:11:02
подскажите что делаю не так? задача вывести списком c.title
<%= form.select(:kg_category, options_for_select([@categories.each do |c| [c.title, c.id] end])) %>
выводится так:
<select name="kg_word[kg_category]" id="kg_word_kg_category"><option value="#<KgCategory:0x00007fee821f9f00>">#<KgCategory:0x00007fee821f9f00></option></select>

Roman
26.10.2018
17:21:12

O
26.10.2018
17:23:31

Yegor
26.10.2018
17:25:48

Mikhail
26.10.2018
17:27:37
запустил его, а он не пишет Works
Посмотрел исходники. Есть подозрение, что ты не можешь открыть тот же файл который перед этим залочил в рамках процесса с другим дескриптором файла

First
26.10.2018
17:28:02
each чета возвращает ?

Roman
26.10.2018
17:28:17
ессно

First
26.10.2018
17:28:28
Схерали
Он ведь не должен ничего возвращать

Roman
26.10.2018
17:28:58
схерали он не должен ничего возвращать? ты запрещаешь?)

First
26.10.2018
17:29:10

Roman
26.10.2018
17:29:31

First
26.10.2018
17:30:02
> 1
2
3
=> nil

Google

First
26.10.2018
17:30:07
s = (1...4).to_a.each do |i|
i + 1
end
puts s

Roman
26.10.2018
17:32:11

First
26.10.2018
17:32:18
Про nil?)

Roman
26.10.2018
17:32:34
1 2 3
это откуда?

First
26.10.2018
17:32:50
Т.е
Ты хочешь сказать, что each возвращает значение из каждой итерации?)

Roman
26.10.2018
17:33:17
нет, each возвращает исходный массив
pry@2.5.1(main)> [1, 2, 3].each { 'pohui' }
=> [
[0] 1,
[1] 2,
[2] 3
]

First
26.10.2018
17:34:05
Не плохо значения возвращает
))))
Окей, в рубях он возвращает
Это самое логичное поведение из всех, что я видел

Roman
26.10.2018
17:34:22
ну мы ж про руби вроде

Vasiliy
26.10.2018
17:37:38
ну так ич это же и не мап
а возврат значения для чейнинга

First
26.10.2018
17:39:05
Больше стейта - лучше

Roman
26.10.2018
17:41:23

First
26.10.2018
17:41:37
Процедурщиной завоняло