hotline
27.03.2018
11:24:02
Artur
27.03.2018
11:25:14
Ну вообще да, в этом случае можно и коллбэк использовать, но лучше было бы сделать формобжект и из модели эту логику вынести
hotline
27.03.2018
11:27:55
с формобжектами еще не работал, буду благодарен если подкинете годную статейку по работе с таковыми
s
27.03.2018
11:27:57
>after_save :set_a
наверное, все же после валидации или до коммита это нужно делать
Google
ojab
27.03.2018
11:28:56
перед валидацией?
s
27.03.2018
11:29:15
кто знает)
ojab
27.03.2018
11:29:27
ну, мы же не хотим невалидные объекты в базу класть
s
27.03.2018
11:30:00
а, в этом плане
не думаю, что там есть валидации на a)
Igor
27.03.2018
11:30:59
А кто как разделяет публичное и приватное АПИ в рамках одного приложения? Т.е. когда есть две ветки АПИ, например /api/v1 - публичное, а для приватного какое именование использовать?
Oleg
27.03.2018
11:39:15
/api/private/version почему бы не так?
Igor
27.03.2018
11:46:26
Если по стандартной схеме /api/:version/:resource
Oleg
27.03.2018
11:47:39
Смотря в какой последовательности написать роуты
Александр
27.03.2018
11:47:44
а они пересекаются? зачем выдумывать что-то?
спрятать от «исследователей» приватное апи всё равно не получится
Igor
27.03.2018
11:49:52
Хотя сейчас ещё раз подумал, можно на уровне nginx закрыть по regexp /api/private/version/*
Тогда прокатит
Google
Артур
27.03.2018
11:50:22
закрыть от кого
Igor
27.03.2018
11:50:33
Закрыть от внешнего мира
Oleg
27.03.2018
11:50:44
ото всех. оно ж приватное
Oleg
27.03.2018
11:50:47
А для чего апи тогда?)
Igor
27.03.2018
11:50:50
Приватное АПИ - только внутри сети
Oleg
27.03.2018
11:51:26
Аа, ограничить можно ip адресами по url
Артур
27.03.2018
11:51:54
ого, внутри сети, ну и задачка там у тебя
Igor
27.03.2018
11:53:15
Как всегда затык случился в наименовании, на инвалидацию кэша уже забил
Александр
27.03.2018
11:55:48
сделай /private/:version/*
Qwizzy
27.03.2018
14:38:46
Привет.
Есть приложение на rails4. Хочется его замониторить. Думал добавить в него handler, который бы отдавал статистику по работе - например количество 2xx|4xx|5xx. Соответственно нужен какой-то counter, который будет инкрементиться при каждом обработанном запросе.
Насколько это возможно? С rails, да и с рубями тоже, знаком мало.
Посоветуйте, что почитать по этой теме.
Aleksey
27.03.2018
14:39:40
прикрути какой-нибудь newrelic
если приложение небольшое , триала должно хватить )
если большое и не хочется платить, можно поднять prometheus и метрики в него кидать.. но newrelic намного проще
Vasiliy
27.03.2018
14:41:25
rollbar можешь ещё
Aleksey
27.03.2018
14:43:00
выбор есть да ) главное что это просто, и помимо 200.400.500 покажет массу другой полезной информации
Qwizzy
27.03.2018
14:44:37
Нет, сторонние сервисы сразу отметаются.
Я могу, конечно, парсить логи unicorn'а и отправлять полученные данные в мониторинг, но хочется продумать именно первоначальный вариант.
Vasiliy
27.03.2018
14:45:06
эмммм, а зачем отправлять данные? ставишь гем, оно само эксепшены обрабатывает
Qwizzy
27.03.2018
14:45:11
И есть уже рабочий графит
Vasiliy
27.03.2018
14:45:18
почему сразу то отменяются?
Qwizzy
27.03.2018
14:45:30
в приложении есть raven, который отправляет в локальный sentry
Google
Aleksey
27.03.2018
14:45:53
ну так сентри это немного про другое )
Qwizzy
27.03.2018
14:46:02
Это внутренний сервис, слать данные куда-то вовне нельзя
Короче говоря, стоит заморачиваться и раскапывать код или действительно проще будет сделать парсику логов?
Я просто хочу пачку графиков - 2хх, 5хх, RPS. Эксепшены это уже вторично
Aleksey
27.03.2018
14:48:50
> Насколько это возможно? С rails, да и с рубями тоже, знаком мало.
тогда проще парсирлку логов )
rekero
27.03.2018
14:49:23
Igor
27.03.2018
14:51:24
Qwizzy
27.03.2018
14:53:30
Тогда мне проще будет написать скрипт на баше, который все распарсит и отправит в нужном виде. Спасибо
Igor
27.03.2018
14:56:21
Если только коды ответов нужны, есть готовые парсилки для стандартного лога nginx
Вплоть до такого https://goaccess.io
Nikita
27.03.2018
18:32:11
Подскажите как вывести нужный элемент из массива с использованием хэша или nill
ojab
27.03.2018
18:33:15
wat
Zamira
27.03.2018
18:46:17
Nikita
27.03.2018
19:21:44
Nikita
27.03.2018
19:41:40
Anna
27.03.2018
20:39:12
ojab
Andiskiy
27.03.2018
20:51:52
при генерации exсel таблицы из html таблицы можно ли вставить туда как-то чекбоксы?
Artur
27.03.2018
21:28:26
@Eugene_Shved
Eugene
27.03.2018
21:29:00
?
Google
Artur
27.03.2018
21:29:19
?
выйдайте уже кому-нить дополнительный молот правосудия)))
Дьячук люто бешено желал
Eugene
27.03.2018
21:29:59
Артур, Дьячук имеет банхаммер.
И уже давно.
Artur
27.03.2018
21:30:36
ух, упустил этот момент))
Eugene
27.03.2018
21:30:49
Спят все. Человеку завтра в офис топать, писать код.
Chat has rules.
http://telegra.ph/Chat-rules-02-15 - English version
http://telegra.ph/Behavior-rules-02-15 - Russian version
Darth
28.03.2018
07:19:40
Пришел на работу
А в нашем кабинете уборка
Я такой "Ну нет так нет"
Sergey
28.03.2018
08:09:06
Всем привет! Кто-нибудь сталкивался с NameError: uninitialized constant <ModelName> ? Подсказали, что это из-за спринга. Появляется как на проде(чаще), так и на дэве. Что делал:
1. DISABLE_SPRING=1
2. config.autoload_paths += %W(#{config.root}/lib) в конфиге application.rb
ошибка появляется, когда хочу запустить консоль
bundle exec rails c production
skynet
28.03.2018
08:15:15
Sergey
28.03.2018
08:21:36
skynet
28.03.2018
08:24:55
Sergey
28.03.2018
08:25:48
skynet
28.03.2018
08:35:52
https://github.com/rails/rails/issues/28146
из за eager_load а, есть решение, чтобы не включать код в lib к примеру перенести в app/legacy - файл будет грузиться единожды.. тогда его можно будет убрать из lib и эту строчку тоже config.autoload_paths += %W(#{config.root}/lib)
надо тестить что будет на самом деле)
тогда по идее rails c -e production можно будет делать без перезагрузки спринга.. решение выглядит как корявое, но по крайней мере должно убрать перезагрузку спринга постоянную
Sergey
28.03.2018
08:45:19
skynet
28.03.2018
08:48:17
Максим
28.03.2018
08:56:48
.select{&:has_page?}
Наугад написал но попробу
Sergey
28.03.2018
08:57:04
class Article
def name
self if has_name?
end
end
Article.where().map(&:name).compact
Google
Sergey
28.03.2018
08:58:55
а вообще что делает метод has_name? может это на where переложить?
Антон
28.03.2018
08:59:05
Максим
28.03.2018
08:59:08
Скоуп сделать
Sergey
28.03.2018
12:11:50
Всем привед
Я обновил один из гемов, которые использую в основном проекте. Из основного проекта я тяну код гем из ветки. Я обновил код в ветке еще раз, но похоже что в основном проекте тянется старый код. Как сделать так чтобы он синхронизировался?
bundle install делаю
s
28.03.2018
12:12:31
bundle update GEM
Максим
28.03.2018
12:12:34
bundle update?
Sergey
28.03.2018
12:12:47
он начинает мне обновлять все гемы какие есть
Максим
28.03.2018
12:13:01
bundle update GEM
Sergey
28.03.2018
12:13:02
bundle update GEM - с такой командой тоже обновляет всё
Юрий
28.03.2018
12:13:06
bundle update gem_name
s
28.03.2018
12:13:23
Sergey
28.03.2018
12:13:48
неужели у него так много зависимостей..
s
28.03.2018
12:14:00
можно посмотреть в его gemspec
Sergey
28.03.2018
12:14:49
не, это не его зависимости обновляются
Fetching i18n 0.9.5 (was 0.9.4)
Installing i18n 0.9.5 (was 0.9.4)
Fetching minitest 5.11.3 (was 5.11.1)
Installing minitest 5.11.3 (was 5.11.1)
у него таких нет
в gemspec