
justed
12.08.2016
08:09:22
у меня есть хеш)
самих инстансов у меня нет

Nikolay
12.08.2016
08:09:47
ну так получи по хешу, чтоли?

justed
12.08.2016
08:10:19
в хеше могут содержаться записи которые нужно создать, т.е. без id

Google

justed
12.08.2016
08:10:42
в курсе как вообще работает accept_nested_attributes_for ?)

Nikolay
12.08.2016
08:11:31
нет, на нестед_формс я еще не ссмотрел в принципе :(

justed
12.08.2016
08:11:35
единственное что я придумал это дергать из по created_at, но это совсем бида

Nikolay
12.08.2016
08:17:27
мне оно пока без надобности

ojab
12.08.2016
08:31:04
хотя с обновлением это не поможет, да

justed
12.08.2016
08:33:52

ojab
12.08.2016
08:34:12
нет, просто при обновлении не происходит add/remove
имеется в сиду обновление things, а не рельс

justed
12.08.2016
08:34:38
понял понял
но ведь есть after_update
попробую ка

Google

ojab
12.08.2016
08:37:20
after_update есть у модели, а не у ассоциации
хотя, конечно, можно в after_update у Thing дёргать какой-нибудь метод у user, но это страшненько будет смотреться

Nikolay
12.08.2016
08:40:11
как мне говорили несколько разных человек - хуки это хорошо и удобно, но чувак, юзай их поменьше. ибо це ад
я помню как доолго трахался - почему вместо одного контейнера создаются два. а всего-то цуцуть ошибся с правильностью выбора хука

justed
12.08.2016
08:46:02
тлен все, сначала хотел отдавать с фронта хитрой структурой, с явным указанием что с чем делать, на беке все это хитро разбирать и в подобном виде отдавать результат. Потом вспомнил что добрые дяди придумали nested_attributes и все может сделаться само, и вот такая беда на тривильаном моменте

Nikolay
12.08.2016
08:48:03
вообще странно как-то
как оно в нестед обьектах без id живет
ибо как понимать, что я хочу обновить платеж в чеке не за молоко а за сосиски
например

justed
12.08.2016
08:49:50
user.update(thing_attributes: [ {id: 4, title:'will_be_updated'}, {title: 'will_be_created'} ] )
вот так эта штука работает
первую ассоциацию обновит, вторую создаст
весьма куртая вещь
но сделана через зад

Nikolay
12.08.2016
08:51:06
хмхм
меня другое вот сейчас беспокоит. вот, у меня регается юзер. кроме штатного емыла/пароля ему надо выбрать он физ лицо или юр лицо, и в заивисимости от этого получить простыню полей для адреса (обоим) + для инн, окпо, и прочих кодов от налоговой для юрлица
плательщик ндс и прочую юрлиццкую хрень

Evgeny
12.08.2016
08:52:55
Тут яно js

Nikolay
12.08.2016
08:53:15
угу. с аяксовой подгрузкой вьюшки
бо это три связаных обьекта получается - акаунт клиента + адрес + поля для ю лица

Google

Nikolay
12.08.2016
08:54:26
в принципе у меня регистрация сейчас сделана гемом wicked а-ля мастер нехт-нехт-финиш

ojab
12.08.2016
08:56:00
как определять, добавился или обновился объект/Thing, например?

v
12.08.2016
08:59:07

ojab
12.08.2016
09:00:01
по шагам придётся где-то хранить данные о предыдущих шагах, сомнительное упрощение

justed
12.08.2016
09:00:32
А что ты потом с этой кучей Thing собираешься в user делать?
На фронте рисуется некое большое дерево этих самых thing, с ленивой подгрузкой и возможностью редактировать листья. Редактируем лист/ветвь. отправляем на сервак, хочу словить результат. Шлю пачкой т.к. некоторые дейсвтия могут вызывать изменения в десятке листьев.

Nikolay
12.08.2016
09:00:34
ну у меня в геме викед так и есть

v
12.08.2016
09:00:48
при аяксовых подгрузках вьюшек данные тоже надо будет где-то хранить

Nikolay
12.08.2016
09:01:00

ojab
12.08.2016
09:01:42

Nikolay
12.08.2016
09:01:44

ojab
12.08.2016
09:02:01

justed
12.08.2016
09:03:48

ojab
12.08.2016
09:04:59
Учитывая что обновление с accepts_nested_attributes_for атомарное, зачем вообще что-то возвращать фронтенду? У него уже есть информация про все изменения. Или в Thing что-то добавляется?

justed
12.08.2016
09:05:02

ojab
12.08.2016
09:05:05
(на сервере)

justed
12.08.2016
09:06:30

ojab
12.08.2016
09:07:07
для свежесозданные вполне подходить :after_add callback

justed
12.08.2016
09:09:36

Google

Антон
12.08.2016
09:19:27
с nested_attributes больше горя чем счастья
я в таких случаях создаю форм обджекты
потому что объект родитель мало что знает о состояниях созданных детей, а дети не знаю о событиях которые привели к апдейту или криейту, что доставляет много баттхерта
иногда даже имеет смысл создать новый контроллер
дебажить/тестировать много запросов от детей проще и быстрее, че один запрос от родителя с вложенными аттрибутами
вообще конечно нужно это один раз сделать, чтобы пофаниться, ощутить мощь и понять, что лучше сделать руками

Nikolay
12.08.2016
09:28:59
так. вот у меня есть модуль EPP::Connection. его тоже надо же инициализировать, чтобы его методы стали доступны в инстансе основного класса?
он у меня как include идет

Антон
12.08.2016
09:30:06
модуль не надо инициализировать

Nikolay
12.08.2016
09:30:28
а как его методы тогда дергать?
чтобы он сокет открыл и вернул

Admin
ERROR: S client not available

Nikolay
12.08.2016
09:30:49
например

ojab
12.08.2016
09:32:04
так же, как и методы класса
при include методы модуля добавляются к классу

Иван
12.08.2016
09:32:29
Если ты инклюдишь модуль в класс, то все "методы экземпляров" модуля автоматически становятся доступны экземплярам твоего класаа

Nikolay
12.08.2016
09:32:32
а

justed
12.08.2016
09:34:52
если rails-api взлетит, может кто то допилит и всё везде станет хорошо)

Антон
12.08.2016
09:42:37
если они равномерно размазаны по времени то это может оказаться в разы дешевле, чем грамотно обслужить большой инстерт

justed
12.08.2016
09:44:22
если бы, то может быть, но нет =)

Google

Антон
12.08.2016
09:45:39
да
вообще я сильно сомневаюсь, что пользователь может создавать на фронте объекты через форму быстрее чем их обработает апи, пожтому да

justed
12.08.2016
09:49:19
юзер может хотеть создать/обновить/удалить горы объектов только после нажатия сабмита, а до тех пор он может час тыкаться в форме)

Антон
12.08.2016
09:50:05
ввести состояние pending для объектов по которым не нажали сабмит
удалять раз в неделю
удалять раз в проект
а проект с нестед аттрибутес может недожить до MVP если вопросы при разработке решаются через чат
надо уяснить, что рельса за вас ничего не будет делать и чем тупее решение вы выбирете, тем лучше будет для всех
при выборе сложного решения шанс попасть в пресловутые 20% нерешенных проблем растет с каждой минутой

justed
12.08.2016
09:58:01
вешать pending, хранить несколько наборов аттрибутов для апдейта, переодически запускать чистки базы, делать отктаты принятых изменений если юзер не нажал сабмит, несомненно более простое решение чем сабмит и одна строка рейлсокода

Pavel
12.08.2016
09:58:13
На которые 80% времени тратится ?

Антон
12.08.2016
09:58:42
дада
у этого списка пунктов 20
я забыл их как страшный сон

justed
12.08.2016
10:03:42
ну да ладно)

Антон
12.08.2016
10:03:54
ухищрения были прекрасны, дирти на дирти сидит и дирти понгонят
я гордился этим кодом, все работало
сейчас я горжусь тем, что магии в коде почти нет

Nikolay
12.08.2016
10:04:54
вот да...
калбеки - тоже магия
мне немного сложнее кстати потому как у меня должно быть апи для работы ихз консоли, но у меня есть тупо желание делать все через /api/shithere даже из консоли используя какой-то ключ