@rubyschool

Страница 357 из 921
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
он скорее всего секретный )
https://github.com/search?q=delete+secrets&type=Commits&utf8=%E2%9C%93

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
Сейчас я добавляю еще 2 формы, соответсвенно мне внутри функции надо какое -то условие, типа если id формы такое - отправлять такие-то params в такой -то контроллер, если другие - то в другой
Почему нельзя делать формы через хелперы Rails? Почему все свои велосипеды строят, тонны JSа пишут. Ну вот есть 3 кнопки и по ним пусть 3 разные формы открываются, и со своими разными кнопками отправки. И все пускай будут remote: true - вот вам и AJAX.

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

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 спасибо

Страница 357 из 921