
Fedor
12.09.2017
11:15:11
я именно об этом наверху и писал
можно взять разность двух дат - будет диапазон
можно взять разность даты и продолжительности диапазона
но не разность трех дат

Google

Fedor
12.09.2017
11:16:12
вычиления идут слева на право, поэтому разность трех дат - это диапазон минус дата, он не определн

Radzhab
12.09.2017
11:16:30
т.е преобразуем разность первых двух временных промежутков в datetime а потом уже от него отнимаем последний промежуток
правильно понимаю?

Fedor
12.09.2017
11:16:40
тебе надо считать справа на лево, тоесть сначала найти диапазон между двумя датами и только потом вычесте го длинну из третьей
ты не сможешь преобзазовать его в datetime
потому что это не дата

Radzhab
12.09.2017
11:17:46
ну ёклмн)) вон аксес умеет такое - а руби нет. обидно

Fedor
12.09.2017
11:18:14
аксес делает нечно странное и неопределенное с точки зрения математики
либо там есть какой-то подковерный оверхэд, которые считает операции с датами в обратном направлении

Vlad
12.09.2017
11:18:43
аксес вообще нечто странное и неопределенное

Nikolay
12.09.2017
11:21:39
@FedorKoshel а можно и мне вопрос задать. Из рельс надо обращаться к rest платежного шлюза. Чем или как лучше это делать? Без рельс я использовал httparty

Fedor
12.09.2017
11:23:51
можно тем же самым httpparty
можно использовать ActiveResource, но если надо сразу инстанциировать аналог моделей из полученных данных

Google

Fedor
12.09.2017
11:24:51
есть еще https://github.com/rest-client/rest-client
он вроде полегче и попроще, но я им не пользовался
ну и https://github.com/lostisland/faraday
он много где используется как зависимость )

Nikolay
12.09.2017
11:28:14
Спасибо, буду смотреть!
да, а если ответы в xml эти гемы ведь применимы, без разницы ведь особо, что парсить?

Fedor
12.09.2017
12:47:10
да
они дадут тебе responce.body, дальше можно на него натравить nokogiri, к примеру

Denis
12.09.2017
13:30:37
а никто не подскажет, как в руби-шахте предпросмотр readme - файла открыть. Вроде есть такая возможность.

Nikolay
12.09.2017
14:13:37
Ещё вопрос, как это лучше всего в рельсах расположить. Т.е. где хранить логин, токен? Где хранить методы для общения со шлюзом? В системе уже имеется сущность payments. В контроллере или в модели ведь не правильно?

Fedor
12.09.2017
14:14:44
Очень сильно зависи от того, что и как ты делаешь
я обычно для того пишу Service
отдельный класс, который не является ни модельню ни контроллером
имеет внешний метод call и принимает класс context

Nikolay
12.09.2017
14:16:59
Это паттерн?

Fedor
12.09.2017
14:17:48
не знаю )
вполне возможно
некий аналог интерактора на самом деле
но мне у интерактора не нравится его контекст, так что я свой написал

Nikolay
12.09.2017
14:20:15
У меня получается будет так. Пользователь формирует заказ и по кнопке оплатить шлюзу шлется номер заказа и сумма. Возвращается номер транзакции и идет переход на шлюзовую форму. Вводит, оплачивает, идёт редирект обратно в магазин с данными. Как-то так

Google

Nikolay
12.09.2017
14:22:20
Читаю интеракторы https://mkdev.me/posts/paru-slov-pro-interaktory-v-rails

Fedor
12.09.2017
14:25:48
по факту у тебя есть кнопка, которая дергает твой контроллер, в нем выполняется вызов этого апи, получается ответ и редиректится на страницу указанную в этом ответе
тоесть у тебя можно либо весь код пихнуть в метод контроллера, если его мало
либо написать интерактор и в контроллере вызывать интерактор
либо написать метод для модели и дергать его у модели
тогда сразу можо в модели сохранять state по результатам вызова метода и проверять его в контроллере перед редиректом
как тебе больше нравится
а пото когда человек отправляет форму на том сайте, в том API, его редиректит обратно на твой контроллер на другой экшен

Nikolay
12.09.2017
14:28:45
Ага, а токен хранить в config/initializers?

Fedor
12.09.2017
14:30:02
скорее в secrets
он скорее всего секретный )

Nikolay
12.09.2017
14:30:34
Ну да )

Denis
12.09.2017
15:28:22

Fedor
12.09.2017
15:28:57
lol
не смогли в гитигнор

Denis
12.09.2017
15:29:16
https://github.com/search?utf8=%E2%9C%93&q=delete+password&type=Commits
все через это проходят

Fedor
12.09.2017
15:29:28
но вообще секреты на проде должны быть в переменных окружения
а не в файлах

Vlad
12.09.2017
17:04:21
Простите, кто то сидит на линуксе с rubymine?

Google

Radzhab
12.09.2017
17:12:24
Я

Alex
12.09.2017
17:13:44
Всем привет, подскажите как лучше сделать:
Есть функция https://pastebin.com/w6vNqd3Q , у меня несколько форм с одинаковым классом, но данные должны отправляться в разные контроллеры.
Вопрос: как правильно сформировать данные? Ну тоесть форма #callback в callback контроллер со своим .ajax запросом, а форма #faq в faq со своим .ajax запросом

Vlad
12.09.2017
17:14:17
Я
Подскажешь мб. Обновил Java, поставил RubyMine. Не распознает синтаксис в файлах .rb и не могу запустить их на отладку. Где дурак не пойму

Vadim
12.09.2017
17:15:38
https://youtu.be/73Eki5zSotg
Свежее видео (месяца 3 ему)

Vlad
12.09.2017
17:16:39
Спасибо огромное

Admin
ERROR: S client not available

Alex
12.09.2017
17:24:52
По JS подскажите пожалуйста ) Я так понимаю надо внутри этой функции получить id формы и потом перед .ajax добавить условие например if form1 -> ajax1 if form2 - > ajax2
я в JS не разбираюсь )

Vlad
12.09.2017
17:31:43
ИМХО,кКак-то с точки зрения архитектуры уже странное решение, как по мне, раз приходится такие велосипеды придумывать. В смысле разные формы но отправляться сразу две должны при отправлении? Если так, то как-то кажется лучше таки одна форма должна быть, а там уже на бэкенде распихивать данные. Поконкретнее опиши зачем тебе это.

Alex
12.09.2017
17:32:35
На странице несколько форм, modal
Допустим есть 3 кнопки, по нажатию на которые открывается форма (callback, faq, email)
Раньше у меня была 1 форма и я использовал эту функцию, которая отлично работала, потому что там сразу забит url и params для контроллера
Сейчас я добавляю еще 2 формы, соответсвенно мне внутри функции надо какое -то условие, типа если id формы такое - отправлять такие-то params в такой -то контроллер, если другие - то в другой
Так лучше пояснил? )))


Vlad
12.09.2017
17:38:33
собственно через gpg не вносятся ключи почему то, попробовал через sudo apt-key adv, пишет что вроде встал. Но все равно при установке rvm трабл
ааа, не видит ключи все равно(

Alex
12.09.2017
17:40:42
после else и перед .ajax я могу получить id формы таким способом: var id = $('form').attr('id');
потом if (id = "new_faq") {
.ajax ({
параметры запросы для формы new_faq;
)};
правильный ход мыслей?

Google

Vlad
12.09.2017
18:00:27
я хз с чем это связано, пришлось в консоли уйти под sudo su, чтобы прописать ключи gpg от rvm, и оттуда же поставить его, жуть какая.
При том я хз как это связано, тк руби поумолчанию уже был, но после этого все запустилось и залетало. И файлы начал распознавать в rubymine, и программы запускает в его консоли
обычный sudo gpg тож не имел прав на импорт ключей, жуть
думаю, все таки виной дистр всему изначально был.

Vlad
12.09.2017
18:07:37
Ибо я так понял вы там формы сами руками пишете <form action=блабла><input блабла></form> итп)

Alex
12.09.2017
18:10:11

Vlad
12.09.2017
18:10:43
А в чем проблема тогда?

Alex
12.09.2017
18:11:06
мне с верстки прислали с такой функцией, мне её выкинуть?

Tanya
12.09.2017
23:54:31
Возник вопрос, если по rubocop в методе должно быть не более 10 строк(а лучше вообще 5)
и длинна строки не более 80 символов, то как быть с выводами текста?
что лучше, чтобы метод был из 11 строк(составлял 2 puts со значениями.)
или из 10 строк но длинна строки превышала 80 символов?

Vitaliy
13.09.2017
00:30:35
Это в команде приняты такие требования? У меня просто более щадящие, 110 длина строки, 35-40 строк в методе

Tanya
13.09.2017
01:44:47
Не, это на учёбе просто сказали рубокопом прогнать проект. И вот, он ругается, либо строка длинная либо метод длинный .

Ro
13.09.2017
03:07:34
помести этот файл в корень проекта
100 поменяй на 120
на многие warnings я забиваю смело, тулза для человека, а не человек для тулзы

Tanya
13.09.2017
03:45:27
@ro31337 спасибо