@rubylang

Страница 1482 из 1684
Silent Bob
01.05.2018
05:28:49
Подскажите нубу, у меня есть класс Bot class Bot def quit end end Я хочу при определенных условиях задавать в контроллере джобу чтобы через 5 минут вызвать на объекте Bot метод quit. Джоба class QuitBotJob < ApplicationJob def perform(bot) bot.quit end end Вызов джобы: @bot = Bot.new QuitBotJob.set(wait: 5.minutes).perform_later(@bot) Но, я получаю ошибку: ActiveJob::SerializationError (Unsupported argument type: Bot): Вопрос: Как мне правильно все запилить чтобы работало?

Vladislav
01.05.2018
05:53:46
Нужно передавать либо строки/числа/boolean/массивы/хэши, либо объекты с поддержкой global id

Задача складывается в очередь, и аргументы нужно как-то хранить, для этого и сериализуется

Google
Silent Bob
01.05.2018
06:26:26
Нужно передавать либо строки/числа/boolean/массивы/хэши, либо объекты с поддержкой global id
спасибо, расширил класс добавив global id по статье https://dev.mikamai.com/2014/09/01/rails-42-new-gems-active-job-and-global-id/

Sergii
01.05.2018
06:31:09
непонятно, что делает бот через пять минут, т.е. в представленном примере, Bot.new переносишь в воркер

если надо конкретному боту - то передаешь в воркер его ид, как Влад написал

в воркере достаешь его по ид, и дальше делаешь что надо

Silent Bob
01.05.2018
06:35:05
непонятно, что делает бот через пять минут, т.е. в представленном примере, Bot.new переносишь в воркер
у бота есть параметр bot.logged_in?, если на момент совершения ждобы logged_in == false джоба вызавает метод bot.quit. Если на момент совершения джобы bot.logged_in? == true, джоба ничего не делает

Sergii
01.05.2018
06:36:26
ну значит надо конкретный бот, значит, надо передавать в воркер его ид, в воркере доставать бота и дальше с ним работать

Silent Bob
01.05.2018
06:50:33
ну значит надо конкретный бот, значит, надо передавать в воркер его ид, в воркере доставать бота и дальше с ним работать
спасибо, я в целом согласен, это правильнее чем расширять класс Bot городя там global_id

Sergii
01.05.2018
07:00:54
А никто не сталкивался с ситуацией, когда гугльхром тупит в одном месте? В частности, заголовок гугл-чарт таблицы, высота задана, если таблица больше, то появляется прокрутка, а заголовку скрипт меняет top: xxx так, что бы он был всегда в верху вьюва. В сафари работает ок, в гхроме - жс отрабатывает, а хидер как-то странно себя ведёт, иногда перерисовывается, но когда именно и по какому событию, отловить не могу

не совсем про руби конечно )=

Darth
01.05.2018
07:59:22
Поэтому я и не стал фронтендером

Rustam
01.05.2018
08:13:50
ребята, кто может помочь с анимацией?

Богдан
01.05.2018
08:59:23
С первым мая господа!?

а не подскажите, где правильно хранить для Job модули?

Google
Rustam
01.05.2018
09:01:56
папочка lib есть

ⰿⰰⰾⱏ
01.05.2018
09:08:56
папочка lib есть
Хорошо не папик lib)

Rustam
01.05.2018
09:10:09
ну можно и папика завести... тут каждый думает в меру испорчености)

Shamil
01.05.2018
09:56:03
Товарищи Web версия телеграм у всех работает?

Богдан
01.05.2018
09:56:52
а не подскажите как правильно сделать, если у меня будут модули всего с одного метода, то как архитектурно лучше сделать?

господа, а как лучше сделать, что бы грузились файлы с папки lib?

Sergii
01.05.2018
10:16:06
config.autoload_paths += Dir[Rails.root.join('lib', 'charts', '**/')] ?

в /config/application.rb

rekero
01.05.2018
12:07:17
Pavel
01.05.2018
15:40:28
банхаммер нужон(

D
01.05.2018
18:37:15
Кто делал оплату криптой с возможностью вывода? Посоветуйте оператора

Богдан
02.05.2018
08:44:43
Господа, поделитесь конфигом для связки Docker, нужен Nginx/ Passenger + Rails

как бы в контейнере уже крутится Passenger + Rails

теперь как правильно подкруть туда Nginx

Sergei
02.05.2018
08:51:59
По-моему мнению, этот подход не совсем верный. Суть докера разбивать сервисы по разным контейнерам, а не закидывать все в один. Запускай отдельный контейнер nginx и проксируй на Rails

Богдан
02.05.2018
09:02:30
так вот судя по официальному пассанжеру, они в один контейнер впихнули и nginx и passenger

https://github.com/richardgill/rails-passenger-nginx-docker-image

Google
Sergei
02.05.2018
09:09:49
Я проксировал на puma, passenger не использовал никогда. Конфиг стандартный: upstream на хост:порт

А последние сервисы даже без nginx

Google Cloud Platform Kubernetes load_balancer делал все за nginx

)) недавно nginx выпустил app-server (Unit) все течет, все меняется)), поэтому говорить однозначно труднова-то
здесь в другом проблема. puma умеет падать, и nginx умеет падать. Когда эти сервисы на bare metal / VPS, мы их умеем контролировать через systemd / monit. А вот когда они внутри докер контейнера то 2 отдельных процесса контролировать и сложно и не нужно. Если puma сдохнет, то сдохнет и докер. А вот если фоновый nginx ? Тогда контейнер будет висеть, но ничего не обрабатывать.

Lavrushchik
02.05.2018
09:16:16
Народ, webpack ругается на комменты в less-файлах. как исправить?

Sergei
02.05.2018
09:21:52
ребята из Heroku не используют ни Puma ни Nginx, у них форк Elixir Cowboy со всеми прелестями Erlang
Да какая разница? Cowboy это тоже application server, как и puma. Если у вас есть статика, то отдавать ее app сервером не самая лучшая идея. Если у вас API или сокеты, то можно и без nginx/apache и т.п.

Artem
02.05.2018
09:26:27
Да какая разница? Cowboy это тоже application server, как и puma. Если у вас есть статика, то отдавать ее app сервером не самая лучшая идея. Если у вас API или сокеты, то можно и без nginx/apache и т.п.
вы ошибаетесь, Cowboy - это не app, а web-сервер, и правильно сказали (как и Puma) HotReload - одна из основных прелестей Erlang в любом случае что-то должно смотреть наружу, и это что-то должно быть подготовлено к суровым реалиям Веба

Alexander "krolaka"
02.05.2018
09:32:50
может кто в курсе нужно добавить логирование заюзал lograge но есть проблема нет ексепшенов в логах пробовал разные версии безтолку

рельсы 4.2.3

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

Sergei
02.05.2018
10:01:06
А чем Rails.logger не подходит?

Alexander "krolaka"
02.05.2018
10:04:42
их нужно структуризировать в кибане какойнить или в базу писать чтоб потом было удобно проследить по юзеру например

Lavrushchik
02.05.2018
10:04:51
не будет у кого мануала "как развернуть рельсовое приложение с webpack через capistrano"?

Alex
02.05.2018
10:05:13
form_for remote: true как поймать submit событие? var form = document.getElementById('new_test'); form.addEventListener('submit', function() { alert('Test') }); так не ловит почему-то, форма просто сабмитится

Денис
02.05.2018
10:05:55
e.preventDefault(); вставь перед выполнением основного кода в слушателе

и слушатели принимают по умолчанию event объект в качестве аргумента анонимной функции

по-этому добавь еще "e" - первым аргументом

Alex
02.05.2018
10:39:18
e.preventDefault(); вставь перед выполнением основного кода в слушателе
Благодарю, помогло. Пошел дальше и столкнулся с тем, что не смотря на e.preventDefault(); форма сабмитится дважды

Google
Alex
02.05.2018
10:40:04
var form = document.getElementById('test'); form.addEventListener('submit', function(e) { console.log('validation completed.'); e.preventDefault(); grecaptcha.execute(); }); первый раз, до grecaptcha.execute(); а второй уже по колбэку после grecaptcha.execute();

Богдан
02.05.2018
13:03:07
господа, а никто не юзал SendGrid сервис для рассылки?

Богдан
02.05.2018
13:12:51
ну есть ли вариант отослать в темплейт массив или обьект?

Admin
ERROR: S client not available

Богдан
02.05.2018
13:13:28
а то как бы нужно табличку рассылать, и как бы это правильно сделать

No
02.05.2018
13:13:40
Гайз, давно сюда не писал, но вот холиварный вопросик назрел. Есть правило, что с помощью Exception-ов не есть хорошо обрабатывать бизнес-логику приложения. Но уже не первый раз встречаю, когда: 1. Делают один rescue_from для кучи кастомных Exception-ов (CannotDeletePlaceError, NotEnoughMoneyError, IpNotWhitelistedError) 2. Бросают эти exception-ы 3. В rescue_from генерируется ответ сервера для этих кастомных exception-ов 4. Вся информация для ответа инкапсулирована в классе exception-а. Теперь вопрос. Интуитивно мне этот подход в корне не нравится. Но есть ли реальные причины, почему это плохо? Кроме "Так писать плохо и всё тут"

Sergei
02.05.2018
13:14:03
а причем здесь Sendgrid?

или ты имеешь ввиду их API ?

с API не работал, юзал sendgrid как smtp

Богдан
02.05.2018
13:14:52
их Api

Darth
02.05.2018
13:41:47
Пацаны, захотел взять релатион систему из книги Хартла, но что-то не оч работает: User.rb def feed following_ids = "SELECT followed_id FROM relationships WHERE follower_id = :user_id" Micropost.where("user_id IN (:following_ids) OR user_id = :user_id", following_ids: following_ids, user_id: id) end Schema.rb: create_table "microposts", force: :cascade do |t| t.string "content" t.integer "user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["user_id", "created_at"], name: "index_microposts_on_user_id_and_created_at" end create_table "relationships", force: :cascade do |t| t.integer "follower_id" t.integer "followed_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["followed_id"], name: "index_relationships_on_followed_id" t.index ["follower_id", "followed_id"], name: "index_relationships_on_follower_id_and_followed_id", unique: true t.index ["follower_id"], name: "index_relationships_on_follower_id" end Вроде всё правильно, но нет

Т.е. возвращаются только посты юзера

Alex
02.05.2018
13:43:25
А где убирается в третьей рельсе преобразование в юникод при JSON? 'Привет'.to_json => "\"\\u041f\\u0440\\u0438\\u0432\\u0435\\u0442\""

Darth
02.05.2018
14:05:12
Переписал так и заработало Micropost.where("user_id IN (SELECT followed_id FROM relationships WHERE follower_id = :user_id) OR user_id = :user_id", user_id: id) хз в чём разница

Sergey
02.05.2018
14:34:24
Всем привет. Есть у кого опыт внедрения в проект webpacker + react_on_rails ? Испытываю проблемы с кэшированием server-render компонент. В пм, если можно

Rustam
02.05.2018
14:36:27
эмм.. не делай этого

либо webpacker либо react_on_rails

Sergey
02.05.2018
14:38:49
А можно подробней почему?

Darth
02.05.2018
14:41:23
Разве react_on_rails и так не использует вебпакер по дефолту?

Google
Rustam
02.05.2018
14:55:56
react_on_rails как раз использует схожый механизм, помоему как раз вебпакер и использует. и ты хочешь смешать две вещи что делают одно и тоже

Darth
02.05.2018
16:43:50
Ну у Хартла так было Хз

Amir
03.05.2018
03:00:00
Ребята может совсем глупый вопрос Но как сделать отбор по присоединенным таблицам Скажем есть модель Element ElementProperty ElementPropertyType Element -> ElementProperty, has_many ElementProperty <- ElementPropertyType, belongs_to цепочка из 3 таблиц Мне нужно посредством AR сделать отбор по ElementPropertyType т.е. грубо говоря отобрать те записи с определенным типом

Denis
03.05.2018
03:08:34
PlanBudget.where("plan_date LIKE '%#{line[1]}'").includes(:plan_month_budgets).where(plan_month_budgets:{tu_id: tu.id})

например так

Amir
03.05.2018
03:49:29
PlanBudget.where("plan_date LIKE '%#{line[1]}'").includes(:plan_month_budgets).where(plan_month_budgets:{tu_id: tu.id})
Это почти работает но как то не сообразю как в JOINS сделать алиас У меня такой случай поле "properties" указывает на другую таблицу, имя которой вычисляется из class_name: "MySpace::AnyClassName" MySpace::AnyClassName, table_name тоже может быть своей поэтому как то странно мне кажется что в условиях когда делаю так MyModel.where(anyany: 123).joins(:prperties).where(:REAL_TABLE_NAME_IN_DB => { qwe: 123 } ) нельзя ли как то незная имя таблицы в БД сделать запрос, чтобы условия делались по алиасу

Denis
03.05.2018
03:54:10
не могу сказать

Lavrushchik
03.05.2018
06:36:11
Гайзы, вопрос не совсем по теме. Мот есть у кого подобие организационной структуры конторы? Тип есть ПМ, у него "такие-то" отделы в подчинение, а в отделе, к примеру, сеньор, у которого N джунов в обучении/подчинении. Ну вот прям которое в конторах прям в конторах

Александр
03.05.2018
07:43:24
а скрам мастер

Смерть
03.05.2018
07:43:40
а скрам мастер
У нас это был ПМ

focusshifter
03.05.2018
07:44:28
У нас это был ПМ
Это конфликт интересов же

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