@rubylang

Страница 1483 из 1684
Смерть
03.05.2018
07:45:33
Такая схема была в 3х конторах

Одна продуктовая и 2 аутсорса

Andrey
03.05.2018
08:06:59
Добрый день! Можете подсказать по activeadmin'у? Есть модель, допустим shop. У нее страничка в админке, и там есть столбец по связи shop.locationable.name Как на него повесить фильтр? Чтоб был поиск по локациям

Не могу найти рецепт

Google
Смерть
03.05.2018
08:22:14
Вот честно говоря не помню как это правильно сделать, да и я с телефона, но это делается через них

Andrey
03.05.2018
08:24:08
хм

Попробую поискать в документации scope

@HooFoo Спасибо за наводку

Lavrushchik
03.05.2018
09:25:57
Вопрос по джобам. How does it work. Есть несколько файлов джоб. В enviroment/*.rb указываю NameOfJob.set(wait: число.единица_времени ).perform_later. Если я укажу одну за одной - они ведь по очереди будут выполняться?

ojab
03.05.2018
09:33:54
зависит от того что и как эти джобы выполняет, в очередь они все сразу попадут

Andrey
03.05.2018
09:37:01
@HooFoo я что-то ничего не нашел про фильтры со scope

Если у тебя есть еще варианты, я буду очень признателен

Смерть
03.05.2018
09:38:52
Ну там вообще под капотом ransack

попробуй в эту сторону покопать

Andrey
03.05.2018
09:39:26
Услышал, спасибо

Dmitry
03.05.2018
10:02:19
Ребят подскажите у меня есть метод в контроллере который данные из базы записывает в xls как мне правильно на него ссылку сделать, чтобы по клику просто файл сохранялся, я сделал так - <%= button_to "Export to xls", action: "export_xls" %> и роут post 'projects/:id', to: 'projects#export_xls', as: 'button'

Google
Dmitry
03.05.2018
10:02:59
и чего то магии не происходит

Lavrushchik
03.05.2018
10:03:34
зависит от того что и как эти джобы выполняет, в очередь они все сразу попадут
но ведь есть же механизм а-ля "выполни вторую джобу, после выполнения первой"?

ojab
03.05.2018
10:03:48
в общем случае — запускать следующую джобу после выполнения предыдущей (или из предыдущей) или .perform_now

но вообще если джобы зависят одна от другой — ты, вероятно, что-то делаешь не так

Lavrushchik
03.05.2018
10:12:30
то бишь, лучше/проще/хз_что, слить пока две джобы в одну, если одна зависит от второй?

ojab
03.05.2018
10:12:49
А зачем их разделять?

Lavrushchik
03.05.2018
10:14:17
прод потом чтоб не положить. там просто юзается селениум для скрапинга. а опыта немного маловато, чтобы грамотно написать и не захавать всю память потом в проде так, чтобы не словить cannot allocate memory

Amit
03.05.2018
10:19:29
magic = { true => "Yes", false => "No" } puts magic[1*2 == 4] Ребят, а то что в переменной magic можно обозвать хэшем?

rekero
03.05.2018
10:21:11
p magic.class

Amit
03.05.2018
10:21:33
p magic.class
Спасибо)

Dmitry
03.05.2018
10:23:55
разобрался там бефор фильтр был

Денис
03.05.2018
10:42:25
Ребятушки, есть тут работающие на MacBook Pro 13 2017 года в базовой комплектации? Опишите свои ощущения, полет нормальный, хватает для повседневных формошлепных дел?)

Ruslan
03.05.2018
10:42:25
Всем привет, есть вопрос касательно counter_cache, у меня счетчик работает для посчета связи через has_many :organizations, -> { distinct }, through: :inventories, если делать reset_counters то все работает как положено, но проблема в инкременте\декременте, когда меняется промеждуточная запись, как можно отключить\переписать эту логику? Пробовал переопределять increment_counter но ноль на массу. Единственным рабочим решением является у промежуточной модели на after_save каждый раз вычислять счетчик через reset_counters, но может есть вариант получше?

Andrey
03.05.2018
11:15:31
Ребятушки, есть тут работающие на MacBook Pro 13 2017 года в базовой комплектации? Опишите свои ощущения, полет нормальный, хватает для повседневных формошлепных дел?)
а какой там проц? Я дома себе собрал дешевенький хакинтошь i3-7100, ssd, 8 озу И все очень приятно работает, сразу несколько докер контейнеров запущено, редактор, куча вкладок в браузере, телега, и все очень приятно работает

Новые вопрос по ActiveAdmin.. Не подскажите, как получить параметры из урла в ActiveAdmin

ojab
03.05.2018
11:44:19
так же, как и не в activeadmin (i. e. params)?

Andrey
03.05.2018
11:44:28
Не, на params ругается

Ilya
03.05.2018
11:46:17
Не, на params ругается
а ты это в контроллере прописываешь или где?

Andrey
03.05.2018
11:46:53
Ну да, на страничке ActiveAdmin в блоке controller do ... end

Google
Alex
03.05.2018
11:51:29
Как с точки зрения архитектуры правильно сделать? Мне внутри одного action update в контроллере нужно сделать update объекта, а также создать\удалить объекты принадлежащие другой модели. Вынести в service object? и там разнести логику по методам?

Ilya
03.05.2018
11:52:14
Ну да, на страничке ActiveAdmin в блоке controller do ... end
странно а как ругается? что в консоли?

Andrey
03.05.2018
11:53:54
Решил вопрос так before_filter do @scope_index = params['scope'] end После, в фильтре так filter :locationable, label: 'Регион', collection: Region.all, if: proc { @scope_index != 'strany' }

Плохо?

В консоль nil возвращал, и странно что работает, если сейчас в контроллере напишу puts @scope_index он скажет nil

Alex
03.05.2018
11:54:38
если у тебя создание/удаление зависит от обновления, то dry-transaction топ вариант
Фактически прилетает в params отдельно массив с id-шникам, независимо от того пройдет update по другим параметрам - нужно создать или удалить объекты другой модели

Andrey
03.05.2018
11:55:14
У меня не создание удаление, все проще. Фильтр показывать в зависимости от scope

а, это не мне было :D

Смерть
03.05.2018
12:11:12
Andrey
03.05.2018
12:22:44
Да я вроде их уже получил, через before_filter и proc

Теперь новая дилема

Сброс фильтров при переключение scope'ов

Anton
03.05.2018
12:24:08
Dry-transaction самое то, с ним атомарно с каждым id будет легко отработать
советую все таки посмотреть на вот это https://github.com/dry-rb/dry-monads/pull/50

потому что с транзакциями слишком много мороки + они не очень гибкие и постоянно надо из шага в шаг стейт прокидывать

Богдан
03.05.2018
13:05:47
Господа, поделитесь своим docker-compose.yml где идет связка nginx в одном контейнере и rails в другом?

Pavel
03.05.2018
13:08:15
потому что с транзакциями слишком много мороки + они не очень гибкие и постоянно надо из шага в шаг стейт прокидывать
Согласен, но думаю что с dry-monads посложнее «въехать». Dry-transaction хороший трамплин в Dry-monads

Google
Anton
03.05.2018
13:09:34
ну т.е. одно и то же, просто форма записи немного отличается и все

Pavel
03.05.2018
13:10:12
Посмотрел pull-request. Очень круто ?

Vasiliy
03.05.2018
13:18:22
ребят а кто юзал action_cable_testing с рспеком? как там можно проверить что сообщение встало в очередь?

ojab
03.05.2018
13:44:00
have_broadcasted_to, не?

или тебе именно "в очереди n сообщений"?

Alex
03.05.2018
13:54:27
да не, ты же там же юзаешь эти же монады
У меня уже голова кругом ) думаю с третьего - четвертого прочтения до меня дойдет ) спасибо

Vasiliy
03.05.2018
14:03:28
have_broadcasted_to, не?
Оно ток блок принимает, а мне надо узнать что после реквеста есть сообщение

а сам запрос в before

Admin
ERROR: S client not available

Vasiliy
03.05.2018
14:04:08
c have_broadcasted_to надо запрос в блок переносить

что-то типа такого хотелось, только сразу с 1 сравнивать assert_broadcasts 'messages', 0 ActionCable.server.broadcast 'messages', { text: 'hello' } assert_broadcasts 'messages', 1

Junk
03.05.2018
14:14:05
Сори за тупой вопрос. Есть модели order has_many postions. Как из выборки по orders получить все привязанные positions?

ojab
03.05.2018
14:15:16
Методом — никак, Postition.where(order: orders) и иже.

Junk
03.05.2018
14:19:22
жаль, значит собреру в массив id-ники всех ордеров и сделаю аналогочно sql where in. хотя попахивает быдлокодом

ojab
03.05.2018
14:20:06
зачем что-то собирать в массив и что мешает сделать то, что написано выше?

Junk
03.05.2018
14:22:23
зачем что-то собирать в массив и что мешает сделать то, что написано выше?
да, сори, неправильно понял, так и сделаю как ты написал, спасибо

Alex
03.05.2018
14:26:35
Разбираюсь с dry/transaction пока если честно тяжело, посоветуйте как разбить на step Кейс - обновление объекта, проверка объектов другой модели и удаление\создание если требуется. На входе имеем params в них прилетают данные, которые изменились. Например: name, description ... etc. Также может прилететь масив item_ids: [] с массивом айдишников, а может и не прилететь. Также может прилететь, а может не прилететь массив айдишников по которым нужно будет проверить: Есть ли все эти id-шники в базе (Другой модели), если нет удалить лишние из базы или добавить.

Я посмотрел пример в документации, там создание нового объекта. Все очевидно, берем params, потом валидируем - если все ок - пишем в базу. В моем же случае парамс не постоянные, надо их проверить, потом проверить объекты другой модели и если все ок - обновить

Google
No
03.05.2018
14:37:56
три step-а как раз

Alex
03.05.2018
14:38:32
даже изменю вопрос: step :update_relation if input.has_key('category_ids') так можно писать?

No
03.05.2018
14:40:56
если не ошибаюсь - нет, это же противоречит railway пути

но что мешает проверять это внутри step-а?

Anton
03.05.2018
14:41:34
даже изменю вопрос: step :update_relation if input.has_key('category_ids') так можно писать?
ты так в транзакции сделать не сможешь, но сможешь вот в такой штуке сделать http://github.com/dry-rb/dry-monads/pull/50

там нет шагов как таковых, при этом можешь условия вешать

Alex
03.05.2018
14:57:01
кое-где спутал названия методов, отредактировать на pastebin не смогу. В целом логика правильная?

Anton
03.05.2018
15:00:41
cкорее ты свой run_logic можешь разбить на шаги и вызывать их с условием в call

Alex
03.05.2018
15:02:26
update_categories(ids, tag) if data.key?('category_ids') внутри call?

или я совсем не правильно понимаю?

Anton
03.05.2018
15:03:00
ага

yield update_categories(ids, tag) if data.key?('category_ids')

по идее, должно сработать

Alex
03.05.2018
15:03:46
Большое спасибо ))) я попробую

Anton
03.05.2018
15:04:09
?

Alex
03.05.2018
15:25:40
tag = yield find_tag(params) .... def find_tag(params) Tag.find(params[:id]) end NoMethodError: undefined method `to_monad' for #<Tag:0x00000000091fe6c8>

Anton
03.05.2018
15:26:31
в монаду оберни

Maybe(ag.find(params[:id]))

Alex
03.05.2018
15:28:17
Maybe(Tag.find(params[:id])) NoMethodError: undefined method `Maybe' for #<UpdateTag:0x00000000087346c0>

Anton
03.05.2018
15:28:50
include Dry::Monads::Maybe::Mixin

Alex
03.05.2018
15:35:10
еще раз благодарю, в примере было по другому

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