
Evegeniy
16.05.2018
11:57:29
Я не с целью обидеть. Просто докер инструмент — решающий определенную задачу

ojab
16.05.2018
11:58:03
нет, docker machine не для этого. Из близкого докерного — docker swarm.
но, опять же, с ним надо разбираться и решать как это конкретно будет реализовано

Evegeniy
16.05.2018
11:58:21
Я где-то читал, что через docker machine
Тебе наверное лучше в канал по докеру, потому что ты, наверное, никогда им не пользовался. Перед тем как начать использовать инструмент, думаю, хорошо ознакомиться с тем, какие проблемы он решает

Google

Tr
16.05.2018
11:58:36
На локале используется докер, в ci для тестов докер, почему в проде не использовать?

Evegeniy
16.05.2018
11:58:36
Это просто совет
Tr потому что его надо администрировать и так ты тянешь еще кучу зависимостей
и вопрос «Что это тебе даст» ?
ты также можешь написать плейбуки для ансибла и сервера менять со скоростью звука
ну или любую другую Infrastructure as a code тулзу
какая тебе нравится больше

Tr
16.05.2018
12:00:09
Тоесть ваш совет использовать докер в цикле и в дев, а на сервере все ставить отдельно и деплоить капистраной? Ну про ансибл я пока не слышал

ojab
16.05.2018
12:01:39
ну, ансибл или что-то подобное в любом случае понадобится для поднятия докера на новой машинке
но таки да, capistrano для деплоя проще всего

Evegeniy
16.05.2018
12:02:57
в dev ты просто упростишь жизнь коллегам
чтобы они не тянули зависимости каждый отдельно под своб машину, если у тебя их много

Google

Evegeniy
16.05.2018
12:03:37
Если у тебя кроме имеджмейджика особо ничего нет, то наверное даже тут уже докер излишек, имхо
Хотя остается пляска с версиями руби

Tr
16.05.2018
12:08:37
Версии сервисов тоже, пг и т.д

Смерть
16.05.2018
12:54:10
Привет всем. Есть такой код
= requirejs_include_tag 'init'
Он возвращает html_safe строку с двумя тегами <script>. Могу я как-то на лету обработать эту строку, чтобы добавить к ней аттрибуты?
к тегам*

ojab
16.05.2018
13:11:20

Иван
16.05.2018
13:25:00

Смерть
16.05.2018
13:26:01
он тогда применяет аттрибуты как 'data-key1=val1'

Иван
16.05.2018
13:26:34
похоже на то - https://github.com/jwhitley/requirejs-rails/blob/749a12e25e1d9a53f613a5e0efdcce618bd45ae8/app/helpers/requirejs_helper.rb#L35

Смерть
16.05.2018
13:26:48
да
Там самая главная проблема дальше
https://github.com/jwhitley/requirejs-rails/blob/749a12e25e1d9a53f613a5e0efdcce618bd45ae8/app/helpers/requirejs_helper.rb#L86
вот это вообще исполняется без опций

Иван
16.05.2018
14:19:24

Смерть
16.05.2018
14:19:41
вот этим я сейчас и занимаюсь

brute11k
16.05.2018
16:07:37
Может быть, немного не по теме, но возник такой вопрос: как тестировать интеграцию между Rails и ElasticSearch? Используется ли в таких целях реальный ES или пишется Mock под каждый запрос - ответ?
И нужно ли вообще это тестировать, если я использую, к примеру, elasticsearch-rails
Пока что нашёл только такое, но ответы слегка староваты, возможно уже придумали что-то получше: https://stackoverflow.com/questions/9676089/how-to-test-elasticsearch-in-a-rails-application-rspec


Di
16.05.2018
16:14:18
Ребят, не совсем по руби, но около. Кто юзал Postgis помогите с затруднением разобраться.
Мне нужно использовать функцию ST_geogFromText, она принимает координаты и делает геоточку.
ST_GeogFromText('SRID=4326;POINT(22 23.25)');
С захардкоженными значениями координат всё норм. Но мне нужно рассчитывать эту формулу беря координаты из текущей строки, допустим есть столбцы longitude и latitude у записи.
И вот как подставлять переменные тут я с синтаксисом подзавис и гугл не спасает. Хелп плиз.

s
16.05.2018
16:30:35

Google

brute11k
16.05.2018
16:34:01
Почему бы не использовать реальный эластик + vcr?
А смогу ли я его использовать по аналогии как с sqlite, в памяти? После каждого тест сьюта очищать базу и т.д. Мне кажется, это будут медленноватые тесты. Продакшн базу использовать для этого как-то не хочется.

s
16.05.2018
16:35:35
Нет, почитай про vcr

brute11k
16.05.2018
16:36:07

s
16.05.2018
16:38:43
На дев машине у тебя будет настроен эластик, первый раз выполняется запрос, записывается на кассету и потом она используется при каждом прогоне. Что-то изменилось в параметрах - будет эксепшн

brute11k
16.05.2018
16:41:53

s
16.05.2018
16:49:30
Да)
VCR это мастхэв для работы с апи

Darth
16.05.2018
16:50:49
20 строчек на js за 3 часа :c

Alex
16.05.2018
16:53:12
ребят, такой вопрос.
я создал миграции, где добавляю столбцы. все это дело закомитил и отправил. сейчас я хочу удалить эти столбцы(они не нужны). теперь надо создать миграции на удаление столбцов и их закомитить? или только удалить файлы ненужных миграций? и соответственно сделать коммит. Как правильно?

rekero
16.05.2018
16:54:17
Создавай миграции

Valter
16.05.2018
16:54:24
А ролбэк не катит?

Иван
16.05.2018
16:54:40
либо создать миграции на удаление, лмбо откатить миграции и удалить файлы

Alex
16.05.2018
16:54:42
ну просто это в ветке все же

s
16.05.2018
16:55:11
В своей ветке, если с ней никто ничего не делал можно и файлы удалить

Alex
16.05.2018
16:55:47
не, это паблик ветка :(

s
16.05.2018
16:55:51
Если никто ещё не успел начать ревью и не накатил твои миграции
Тогда не стоит)
В смысле, если там точно никто не мог запустить миграции, то можно удалить и из ремут ветки

Ilya
16.05.2018
16:57:20

Google

brute11k
16.05.2018
17:17:23
На продакшене всегда только миграции для любого изменения столбцов/таблиц/данных в базе.

Dmitry
16.05.2018
17:19:55
это если базу проебывать время от времени)

brute11k
16.05.2018
17:20:38
Если используется CI/CD, то может возникнуть такая ситуация, что в старом коде используется поле, которого больше нет. И такой запрос может оборваться для пользователя, если он возник из старого кода, а обратно пришёл уже на новый
В таком случае лучше делать maintenance mode или изменения делать поэтапно. Т.е. сначала убрать код, который обращается к старому полю, а потом уже из базы убрать само поле.

Admin
ERROR: S client not available

brute11k
16.05.2018
17:24:49
Вообще, мне кажется с каждым запросом лучше передавать ещё его версию (unixtime какой-нибудь), и отклонять, если текущая версия больше.

s
16.05.2018
17:39:35
это все сильно зависит от того, сколько стоит ошибка в приложении. уверен, что в 99% рельсовых проектов на это просто забивают)
да и не только рельсовых)

Богдан
16.05.2018
20:10:06
господа, а не подскажите, вот ковыряю бота, и для сессий нужно подключить Redis
# In rails app store can be configured in env files:
config.telegram_updates_controller.session_store = :redis_store, {expires_in: 1.month}
насколько я понимаю это надо в config\production.rb
Но вопрос а где задать настройки для Redis, пароль и какую базу использовать?

Igor
16.05.2018
20:21:15
https://github.com/rails/rails/search?utf8=✓&q=REDIS_URL&type= @b360124 просто в ENV REDIS_URL положить

Богдан
16.05.2018
20:22:20

Shilin
17.05.2018
05:22:07
RSpec ругается.
SystemsController PUT #update returns accepted status
Failure/Error: put :update, id: system
NoMethodError:
protected method `config' called for #<SystemsController:0x0055734cc03ab8>
Did you mean? config_url
кто сталкивался?

Pavel
17.05.2018
05:41:27
метод в контроллере тянешь, котороый protected

Богдан
17.05.2018
07:00:37
Ребята, а может кто подскажет как например в геме telegram-bot отправлять callback, чето никак не могу в документации понять?

Fedor
17.05.2018
07:14:28
https://github.com/fedorkk/test_wo_bot/blob/master/bin/main.rb
может я не совсем понял, что ты имеешь в виду под callbackом, но ты просто получаешь сообщение и шлешь в ответ свое
по полученному chat_id

Aleksey
17.05.2018
07:17:06
если речь про вебхуки, то ты ничего не шлешь ) телеграм в твой вебхук шлет новые меседжи просто

Google

Богдан
17.05.2018
07:17:51
Спасибо, ну я как бы хочу сделать кнопку, я ж так понимаю она на калбеках делается
но чето вообще непонятно с документации как ее сделать
https://github.com/telegram-bot-rb/telegram-bot
может кто делал?

Fedor
17.05.2018
07:19:33
А какая разница?
гем - это не более чем обертка для API
что бы не собирать ручками кучу всего и не слать http запросы
у тебя там тоже должен быть метод для отправки сообщения с теми же параметрами

Смерть
17.05.2018
07:24:14
Так же, но при клике на кнопку в телеграме тебе придет айди в вебхук. Первый параметр должен быть этот айди, а второй как раз объект для телеграм апи

Богдан
17.05.2018
07:24:41
так вот вопрос, как эту кнопку сделать?
уже документацию под микроспоком посмотрел, но что-то непонятно вообще

Смерть
17.05.2018
07:26:18
https://core.telegram.org/bots/2-0-intro#new-inline-keyboards
Ты к мессаджу прикребляешь объект клавиатуры