
Silent Bob
25.04.2018
08:41:37
Такой простой казалось бы вопрос - как запустить рельсы (или просто любой сервер, puma к примеру) на 80 порте, при условии что я юзаю rbenv а не rvm? у rvm есть rvmsudo хотя бы

Vasiliy
25.04.2018
08:41:41
т.е. сначала запросить юзеров, а потом уже ещё запросами репорты для каждого юзера?

Michael
25.04.2018
08:45:59
ну это очень грубо говоря))) доношу саму мысль, а рефакторинг кода за тобой

Google

Michael
25.04.2018
08:47:13
has_not_send_reports это у тебя будет скоуп для юзеров который отдаст тебе только тех юзеров у которых есть не отправленные репорты

Silent Bob
25.04.2018
08:49:12

ojab
25.04.2018
08:49:51

Silent Bob
25.04.2018
08:51:07

ojab
25.04.2018
08:53:46
(ну или через iptables завернуть 80 на 3000)

Dmitry
25.04.2018
09:08:19

Rustam
25.04.2018
09:08:52
в переменную загнать?

Dmitry
25.04.2018
09:08:57
вот у меня есть
CSV.open("/home/difry/file.csv", "ab") do |csv|
csv << arr_date
end
я пробовал загнать в переменную CSV.open("/home/difry/file.csv", "ab")
ошибка синтаксиса потом
чяднт

ojab
25.04.2018
09:10:46
только вот у CSV нет метода close
http://ruby-doc.org/stdlib-2.5.0/libdoc/csv/rdoc/CSV.html
>An opened CSV object will delegate to many IO methods for convenience. You may call:
>close()

Google

Dmitry
25.04.2018
09:11:57
как его вызвать то
я находил это, но чет не догнал как применить

ojab
25.04.2018
09:12:50
csv = CSV.open('file') && csv.close

Dmitry
25.04.2018
09:14:17
а как к этой переменной блок do end подставить чтобы синтаксической ошибки не было?

Rustam
25.04.2018
09:15:06
аа
какая магия
This method works like Ruby's open() call, in that it will pass a CSV object to a provided block and close it when the block terminates, or it will return the CSV object when no block is provided. (Note: This is different from the Ruby 1.8 CSV library which passed rows to the block. Use ::foreach for that behavior.)
он сам закроет в конце блока

Dmitry
25.04.2018
09:17:26
так я и не понял как мне это написать https://paste2.org/xegav7IH

Rustam
25.04.2018
09:19:16
так и оставь, если тебя устраевает постоянное открытие и закрытие фаила

Dmitry
25.04.2018
09:21:25
у меня почему то память течет
на 690+ цикле
4 гб кончаются значит csv.open тут не при делах.

Rustam
25.04.2018
09:24:30
может и приделах.. все же постаянно открывается и закрывается

Alex
25.04.2018
09:25:05

Andiskiy
25.04.2018
09:25:16

Dmitry
25.04.2018
09:25:39

Alex
25.04.2018
09:26:01
garbage collection

Rustam
25.04.2018
09:27:41
тебе надо прочитать фаил в переменую. сделать сней все что надо в цикле и записать обратно в фаил

Dmitry
25.04.2018
09:28:12
можешь написать пример?
что в переменную писать если файл пустой, как do end на нее вызывать

Alex
25.04.2018
09:29:34
Какая задача? Ты открываешь и закрываешь один и тот же файл?

Sergey
25.04.2018
09:30:23
Всем привет! Очень хотелось бы ревью 2х вариантов метода show от какого-нибудь жесткого рубиста!
Один вариант более читаем, с форматированием, 22 строчки. Другой сжатый - 8 строчек.
Хотелось достичь максимальной читаемости, dry и оргазма от кода.
Какой вариант выбрать, что исправить или есть лучше вариант? Ответ в комменты на гисте
https://gist.github.com/shamanomania/1fac4f46d9eafc289088e279f8805006

Google

vizvamitra
25.04.2018
09:35:29
почему ты хочешь вместо http-кода 404 возвращать http-код 200 + json с ошибкой 404?

Sergey
25.04.2018
09:36:08
да, звучит не очень логично, но так хотят фронты

Alex
25.04.2018
09:37:39
все проблемы начинаются когда фронт начинает командовать бэком

vizvamitra
25.04.2018
09:38:07
+1

ojab
25.04.2018
09:44:27
в частности message в 404 разный


vizvamitra
25.04.2018
10:01:20
во-первых, я бы вынес превращение page-а в json в отдельный класс-сериалайзер.
во-вторых, я бы вынес { message: 'Record not found', status: 'error', code: 404 } куда-нибудь потому, что это явно частый случай, не только про pages#show
в-третьих, тут очень простая и часто встречаемая логика метода show, её тоже можно вынести, например в какой-нибудь ResourceController, от которого бы наследовались подобные контроллеры со стандартными методами show и index. У нас подобные контроллеры выглядят так:
class DynamicPagesController < ResourceController
model_class DynamicPage
# сериализует модель в json
serializer_class DynamicPageSerializer
# достаёт из БД коллекцию, фильтруя и сортируя её в соответствии с
# GET-параметрами. Можно не указывать, если нужен только #show
fetcher_class DynamicPagesFetcher
# ненужные экшены можно пропустить
actions :show, :index
# дальше другие экшены, если нужно
end


Sergey
25.04.2018
10:02:01
Привед
Кто может подсказать - у меня есть 2 кастомные валидации с использованием validate_each (ActiveModel::EachValidator)
validates :q3, is_valid_date: true, limited_in_future: { to: 18.months }
они выполняются не по порядку, почему-то сначала отрабатывает limited_in_future с эксепшеном о том, что формат даты неверный, который должен был провериться в is_valid_date, есть способ упорядочить такие валидации?

vizvamitra
25.04.2018
10:02:04
а в-нулевых я бы использовал http-коды так, как это принято

Sergey
25.04.2018
10:03:16
ааа.. Или они просто не прерываются если одна из них уже неверная
а чекает до конца всё
не хочется дублировать проверки

Dmitry
25.04.2018
10:05:39

ojab
25.04.2018
10:07:24
А зачем ты открываешь csv на каждый цикл, если у тебя 'ab'?

Alex
25.04.2018
10:08:04
тоже не понимаю

Darth
25.04.2018
10:08:12
Немножк оффтоп:
Позволяют ли вам компании если вы обедаете не час, а пол часа, уходить на пол часа пораньше, чтобы не работать по 8,5 часов в день?

Dmitry
25.04.2018
10:08:52

ojab
25.04.2018
10:10:27
да

Dmitry
25.04.2018
10:21:24
спасибо, щас попробую

Slava
25.04.2018
11:00:27

Google

Darth
25.04.2018
11:03:29
Обидно

Fedor
25.04.2018
11:04:03
нормальным кампаниям вообще пофиг когда ты приходишь и уходишь, лишь бы все успевал и качественно

KEPLER2B
25.04.2018
11:07:53
+
единсвенно общие брифы и планерки - понятно, обязалово и по времени

Артур
25.04.2018
11:08:54

KEPLER2B
25.04.2018
11:09:05
а так можешь вообще не приходить, лишь бы в таймлайны уложился

Admin
ERROR: S client not available

Darth
25.04.2018
12:26:21
Чем можно клаент сайд валидэйшен сделать на руби? html5_validators хороший, но для password_field не работает

Artem
25.04.2018
12:43:02

Darth
25.04.2018
12:51:54
Вообще можно ли сделать realtime валидации пароля (минимум 1 большой символ, совпадение с конфирмейшенем и тд) без жс?

Ilya
25.04.2018
12:57:53

Darth
25.04.2018
12:58:55
Ну я имею в виду без написания его ручками

Смерть
25.04.2018
12:59:03

ojab
25.04.2018
12:59:30

Darth
25.04.2018
12:59:48
Попробую

ojab
25.04.2018
13:00:02
а, совпадение не выйдет afaik

Lavrushchik
25.04.2018
13:48:26
вопрос - есть какая-нибудь приблуда для добавление мета-тегов для seo через какой-нибудь rails_admin?

Alex
25.04.2018
14:02:47
Странный вопрос, я с rails admin не работал, но тут вариантов куча, либо во вьюшке пишешь шаблон куда подтягиваешь данные через интерполяцию, либо делаешь свойство у объекта, а в админке инпут

Nikita
25.04.2018
15:20:55
pool в дб прописан

Google

Nikita
25.04.2018
15:21:47
гугл не выдает адекватного описания ситуации

Ilya
25.04.2018
15:26:38

Lavrushchik
25.04.2018
15:27:57

Ilya
25.04.2018
15:29:26
Если у тебя мета теги одни и те же. Если уникальные для каждой страницы то добавь taggable модель какую нибудь. Домой приеду, подробно опишу

Lavrushchik
25.04.2018
15:30:28
не, теги одни и те же везде вроде как

Ilya
25.04.2018
15:31:35
Загугли rails global settings

Lavrushchik
25.04.2018
15:32:57

Dmitry
25.04.2018
15:37:17
почему в рейлс консоле это работает
date = CustomValue.where(customized_id: adios_id, custom_field_id: 122).take.value
d = DateTime.parse(date)
а когда запускаю внутри файла rails r file.rb
пишет -`parse': invalid date (ArgumentError)

Ilya
25.04.2018
15:41:43

Lavrushchik
25.04.2018
15:43:49

Ilya
25.04.2018
15:45:26
Что подтянул

Lavrushchik
25.04.2018
15:46:52
Что подтянул
гем нашёл, он модель создал и таблицу в бд. без глобальных переменных

Ilya
25.04.2018
15:48:53