@rubylang

Страница 286 из 1684
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
мне оно пока без надобности

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 а-ля мастер нехт-нехт-финиш

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:44
при аяксовых подгрузках вьюшек данные тоже надо будет где-то хранить
ну там проще - заполнил форму оно все отправило и создало

justed
12.08.2016
09:03:48
замечательно, но я так и не понял как ты планируешь отделять обновившиеся Thing от новых. Или это всё на фронтенд будет разруливать?
Ну фронт знает что он он ждет результата по некоторым элементам, и получив правильный результат вполне себе может раскидаться

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
Учитывая что обновление с accepts_nested_attributes_for атомарное, зачем вообще что-то возвращать фронтенду? У него уже есть информация про все изменения. Или в Thing что-то добавляется?
Ну если ответ от сервера без ошибок, допустим я могу принять что апдейт и дестрой прошли хорошо, и просто отразить изменения. Но для свежесозданных хотябы иды надо получить, т.к. следующим действием может оказаться обновление свежесозданного листа

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

justed
12.08.2016
09:09:36
для свежесозданные вполне подходить :after_add callback
не знать такой, сейчас почитаю, надеюсь повезет

для свежесозданные вполне подходить :after_add callback
ну похоже на опредленный успех, спасибо

Google
Антон
12.08.2016
09:19:27
для свежесозданные вполне подходить :after_add callback
тебе надо свой канал создавать и платный вход

с 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% нерешенных проблем?
библиотека решает 80% задач, на которые тратятся 20% времени

дада

вешать pending, хранить несколько наборов аттрибутов для апдейта, переодически запускать чистки базы, делать отктаты принятых изменений если юзер не нажал сабмит, несомненно более простое решение чем сабмит и одна строка рейлсокода
это поверхностная оценка я тоже любою контроллеры, в которых нет кода но трудности начаниются почти сразу 1) пермитед аттрибуты 2) валидейт фалс, и лаконичная запись childern инвалид 3) не дай бог, у чилдрена калбэк 4) чилдрену не понятно что просходит c родителем

у этого списка пунктов 20 я забыл их как страшный сон

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

Антон
12.08.2016
10:03:54
ухищрения были прекрасны, дирти на дирти сидит и дирти понгонят

я гордился этим кодом, все работало

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

Nikolay
12.08.2016
10:04:54
вот да...

калбеки - тоже магия

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

Страница 286 из 1684