@proRuby

Страница 697 из 1594
Dima
06.09.2017
13:39:01
https://youtu.be/OMPfEXIlTVE?t=8m8s

Victor
06.09.2017
13:41:07
да, это оттуда скриншот )

пропустил двоеточие между consumer и secret -- исправил, не помогло добавил user-agent и content-length -- не помогло

Google
Alex
06.09.2017
13:57:47
потом делай через руби

Vlad
06.09.2017
14:14:09
Ребят а какой хук мне использовать если я хочу после того как происходит апдейт объекта модели вызывать функцию которая тоже апдейтит один параметр?

Vlad
06.09.2017
14:17:51
Суть в том что все хуки на апдейт будут зацикливаться и на афтер сейв тоже

Alex
06.09.2017
14:19:30
я бы был поосторожнее с хуками

Alex
06.09.2017
14:20:42
можно зафигачить update_column(attr, val) - тогда коллбеки не срабатывают (и валидации) но вообще это стремная идея - обновлять поле после обновления - а зачем это надо по задаче? http://www.davidverhasselt.com/set-attributes-in-activerecord/

может мы кошерный способ подскажем

Vlad
06.09.2017
14:23:07
Ну у меня есть рилейшн полицейский - район, и в копе поле дистрикт_айди, когда я обновляю его мне нужно чтобы поле копа сити_айди менялось на дистрикт.сити_айди

Alex
06.09.2017
14:24:47
тогда можно проще и красивее

Marsel
06.09.2017
14:25:04
если сити_айди можно вытащить из дистрикта, надо ли его пихать отдельно в копа?

Vlad
06.09.2017
14:25:26
А как это в контроллере описать

Google
Vlad
06.09.2017
14:25:46
Чтобы в апдейт полем сити_айди приходило дистрикт.сиди_айди

Alex
06.09.2017
14:26:45
пихать кучу логики в модель или контроллер ну так себе идея.

Максим
06.09.2017
14:27:20
так так так

я как раз читал что бизнес логику надо в модель

куда если не в неё?

Vlad
06.09.2017
14:27:35
Так получится сервис на одну строчку

Максим
06.09.2017
14:27:37
сервисы?

Alex
06.09.2017
14:27:41
сделать service object
это лучше всего будет

больше сервисов богу сервисов

Alex
06.09.2017
14:27:57
я как раз читал что бизнес логику надо в модель
а потом у тебя модель которую ты замучаешься прикручивать к новому бизнес кейсу. Нет нет нет, проходили уже.

Максим
06.09.2017
14:28:08
так значит по сервисам?

Alex
06.09.2017
14:28:11
иначе как раз говнокод и появляется - срочка там, строчка тут

Anton
06.09.2017
14:28:12
я как раз читал что бизнес логику надо в модель
Модель не для бизнес логики, а для логики работы с бд или данными

Alex
06.09.2017
14:28:17
Так получится сервис на одну строчку
ты там хук хочешь вызвать, не?

уже не одна строчка.

Anton
06.09.2017
14:28:32
так значит по сервисам?
По изоливанным объектам, там много вариантов

Максим
06.09.2017
14:28:35
Модель не для бизнес логики, а для логики работы с бд или данными
ну в реилс стайл гайде написано что бизнес логику туда пихать

Google
Vlad
06.09.2017
14:28:52
Я могу просто написать апдейт атрибут в сервисе

Vladislav
06.09.2017
14:28:54
Он тебе врал

ну в реилс стайл гайде написано что бизнес логику туда пихать

Alex
06.09.2017
14:28:56
потом у тебя будет god модель на которой весь сервис крутится

Anton
06.09.2017
14:29:00
ну в реилс стайл гайде написано что бизнес логику туда пихать
Ну, потом у тебя будет модель на 2к строк, оно надо тебе?

Alex
06.09.2017
14:29:02
и ты замучаешься добавлять новый кейс

модель данные хранит.

Максим
06.09.2017
14:29:15
конечно не надо потому и спрашиваю как улчше

Alex
06.09.2017
14:29:22
сделать сервис на каждый случай

Alex
06.09.2017
14:29:26
проснуться не успеешь а у тебя уже модель на 1.5к срок) - реальная ситуация между прочим

Anton
06.09.2017
14:29:31
ну в реилс стайл гайде написано что бизнес логику туда пихать
Ну короче, не слушай гайды рельсы. Они часто плохому учат в угоду easy

Alex
06.09.2017
14:29:33
если получится то сделать один сервис на несколько ОЧЕНЬ похожих случаев.

Максим
06.09.2017
14:29:45
где тогда лучше знаний нахватываться?

Alex
06.09.2017
14:29:46
главное чтобы сервисы не дергали кучу других сервисов, а то тоже замучаешься.

Максим
06.09.2017
14:30:01
т.е. изолированые сервисы под каждый кейс

Alex
06.09.2017
14:30:06
по возможности да.

у нас в проекте сделали сервисы на создание модели. Не самый лучший выход, но лучше модели имхо.

Alex
06.09.2017
14:31:49
а что не так? по-моему норм

Google
Alex
06.09.2017
14:32:05
у нас и на update есть отдельные

Alex
06.09.2017
14:32:06
а что не так? по-моему норм
ну там потом начинаются теже проблемы как если бы ты в модели все это хранил.

Этот сервис начинает обрастать кучей условий и т.д.

на update отдельные да

правда кто то был умным, на одну модель повесил наследование на update

он наследуется от create :)))

Admin
ERROR: S client not available

Alex
06.09.2017
14:33:19
Это называется command object
в чем разница от service object?

Anton
06.09.2017
14:33:48
в чем разница от service object?
Ох, там очень много граней. Это как интерактор, оперейшен, функциональный объект и сервис

Максим
06.09.2017
14:33:51
Посты, книги, каналы
книги и каналы читаю, посты с каких форумов\блогов? читаю dev.to

Anton
06.09.2017
14:34:15
По сути команда - это такая штука, которая знает как сохранять, обновлять или удалять данные из базы

Alex
06.09.2017
14:34:18
много годноты

Максим
06.09.2017
14:34:25
пасиб

Alex
06.09.2017
14:34:34
у меня правда с января накопилось рассылок уже. Все руки не дойдут их прочитать.

Anton
06.09.2017
14:35:31
По сути команда - это такая штука, которая знает как сохранять, обновлять или удалять данные из базы
Ну типо оно не должно валидировать, или же вызывать левые штуки. По сути, этот объект делает все то, что метод save из рельсы + колбэки

Alex
06.09.2017
14:35:43
чойто оно валидировать не должно

у нас оно вызывает форму-валидатор

Google
Alex
06.09.2017
14:36:02
который reform форма

хотя мне чото не очень подход такой нравится, кривовато оно у нас )

я бы выкинул реформ, с ним больше проблем. И попробовал Active Model

Anton
06.09.2017
14:37:03
чойто оно валидировать не должно
Ну потому что валидация - это вообще другая логика, которая в моделе (по хорошему) не должна быть

Alex
06.09.2017
14:37:14
ну по сути валидирует форма

но сервис который создает модель может прокинуть ошибки

валидации.

Anton
06.09.2017
14:37:32
Потому валидировать надо данные которые из вне пришли, а не в моделе

Alex
06.09.2017
14:37:49
Максим
06.09.2017
14:37:50
извините что в разговор больших ребят вклиниваюсь но просто хочу как можно больше из этого понять

Alex
06.09.2017
14:38:07
Anton
06.09.2017
14:38:56
валидировать надо конечные данные
Не, зависит от того, что делаешь. Я пришёл к выводу, что для меня лучший вариант такой: Получить данные -> провалидировать -> трансформировать валидные -> сохранить

Alex
06.09.2017
14:39:22
ну смотри, я трансформирую данные и проецирую их на будущую версию модели. Если все ок - сейв

Это позволяет не проверять каждый раз как конкретно здесь трансформируются данные

а только если оно неправильно работает.

Alex
06.09.2017
14:39:45
так стоп а как же validate
в маленьких приложениях норм в больших стало некомильфо - на каждый чих все выносим в отдельный класс с единственным назанчением - Single responsibility principle - тут и куча архитектурных решений вроде Service Object, From Object, etc...

Anton
06.09.2017
14:39:55
так стоп а как же validate
https://t.me/pepegramming/35

Alex
06.09.2017
14:40:27
> Модель вмещает в себя много логики. Это мешает в тестах Про тесты жиза вообще

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