
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

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

Silent Bob
01.05.2018
06:35:05

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

Silent Bob
01.05.2018
06:50:33

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

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

Богдан
01.05.2018
10:23:20

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

Artem
02.05.2018
08:54:28

Богдан
02.05.2018
09:02:30
так вот судя по официальному пассанжеру, они в один контейнер впихнули и nginx и passenger
https://github.com/richardgill/rails-passenger-nginx-docker-image

Google

Богдан
02.05.2018
09:03:39

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

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

Artem
02.05.2018
09:18:54

Sergei
02.05.2018
09:21:52

Artem
02.05.2018
09:26:27

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

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 сервис для рассылки?

Sergei
02.05.2018
13:12:23

Богдан
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 как раз использует схожый механизм, помоему как раз вебпакер и использует. и ты хочешь смешать две вещи что делают одно и тоже


Sergii
02.05.2018
16:42:46
Пацаны, захотел взять релатион систему из книги Хартла, но что-то не оч работает:
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
Вроде всё правильно, но нет
у тебя тут following_ids - строка, а ты её как список поставляешь.


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:40:51
А продакты уже общаются с заказчиками, продажниками и т.д.

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

Смерть
03.05.2018
07:43:40

focusshifter
03.05.2018
07:44:28