
Amir
25.08.2016
06:52:54
мне кажеться надо как то так
qwe = DateTime.new(2000,1,1)
qwe + 5 минут вцикле

Alex
25.08.2016
06:53:35
Обьясни бизнесс задачу

Amir
25.08.2016
06:54:11
тупо надо заполнить массив датавремями с интервалом 5 минут :)
DateTime.new(2001,2,3)
вот это в IRB не пашет, почему хз

Google

Amir
25.08.2016
06:55:12
https://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html
а все понял в ирб тоже рекуирить надо чтоли

Alex
25.08.2016
06:59:31
Разобрался? В erb кстати нет active support. У тебя рельсы? `rails console`

Amir
25.08.2016
07:00:24
как в примерах добавить 5 минут не получается
qwe = DateTime(2000,1,1)
qwe + 5.minutes
qwe + 5
добавляет 5 дней

Vlad
25.08.2016
07:00:40
Кажется я понял что амир хочет. Надо сгруппировать данные из БД по интервалам в n минут

Amir
25.08.2016
07:00:55
ага

Alex
25.08.2016
07:01:01
Или он хочет в рубях собрать массив и запросить базу

Amir
25.08.2016
07:01:32
я это собираюсь тупо в цикле сделать подзапросы каждые 5 мин
за определенный период
конечно можно было супер запрос сделать ан SQL один

Alex
25.08.2016
07:02:23
Зачем? Обьясни уже бизнесзадачу

Google

Alex
25.08.2016
07:02:49
Какая выборка тебе нужна?

Amir
25.08.2016
07:03:15
скажем примерно график как в финасовых показателях
курсы валют типа

Alex
25.08.2016
07:03:44
Average per n minutes?

Amir
25.08.2016
07:05:56
на форексе никто не торговал, там же график например
интервал выбираешь сам , каждые 15 мин 1 час день
и он тебе быстро рисует график
но речь не об этом
как по рубовсаи правильно организовать цикл во времени, с интервалом 5 мин
я тут даже к дате не могу добавить 5 минут :)
что-то пошло не так
вот это += 5.minutes не работает
require какой надо сделать?

Vlad
25.08.2016
07:08:29
если ты в рельсах, то все должно работать сразу

Alex
25.08.2016
07:09:27
Одной строчкой сгенерил массив значений, другой дернул AR

Amir
25.08.2016
07:12:37
АР сам может сгенерить такой запрос?

Alex
25.08.2016
07:13:05
Да, даешь ему массив значений и он по ним делает один запрос
График будет неточным правда.
Все зависит от того с какой периодичностью у тебя пишется в базу значение графика.

Amir
25.08.2016
07:15:24
не важно, зоть тыщи миллионы записей между 5 минут, надо получить массив значений каждые 5 минут,
как раньше делал можно на чистом sql писать так с кучей юнионов
или лефт джойнов

Google

Amir
25.08.2016
07:16:24
но не хоыу :)
блин оказывается вот ету фигную надо было подключить
require 'active_support/core_ext'
чтобы 5.minutes работал :)
вот намудрил
как думаете будет работать?
qwe = DateTime.new(2000,1,1)
qwe2 = qwe + 24.hours
while qwe < qwe2 do
qwe += 15.minutes
Foo.where("dt < ?", qwe).order(id: :desc).limit(1)
end

Adamtsov
25.08.2016
07:32:00
это же сколько запросов то будет)

kolas
25.08.2016
07:32:03
тбе же range нужен в запросе
да, лучше один запрос сделать, потом разбить в руби
хотя еще было через group, правда не знаю можно ли там так по временным циклам сделать

Amir
25.08.2016
08:21:31
что-то скрипт отваливается
когда заношу тестовые данные в транзакции
идет нормально до половины, и хоп, вдруг таблица заблокировано
база sqlite
так правильно же делаю?
Foo.transaction do
whilte qwe < qwe2 do
qwe += 5.minutes
Foo.create f1: 1, f2: 2, qwe: qwe
end
end
в Java тупо мог по счетчику зафиксировать транзакцию например через каждые 5000, а тут в руби хз как это сделать :)

Adamtsov
25.08.2016
08:30:40
надо количество pool ов увеличить

Amir
25.08.2016
08:32:04
в sqlite3 ?

Adamtsov
25.08.2016
08:33:16
в database.yml

Amir
25.08.2016
08:33:46
Хмм,
уже перевел на mysql
там вроде все еще идет, не отваливается
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
вот здесь надо да?
и сколько адекватное значение на которую надо увеличивать
1000 поставлю?

Adamtsov
25.08.2016
08:38:42
ну я ставлю 20 в продакшене
где посещаемость не очень большая

Andrey
25.08.2016
09:26:03
Все привет в этом чате!
Есть задача, входные данные: на сервере лежит куча мелких zip архивов(3-5 мб), по запросу пользователя, нужно сформировать один большой zip архив(100-150мб обычно), в котором будут лежать мелкие zip архивы, по определенной выборке.
Сейчас сделано быстро и тупо, пользователь переход по урлу, в методе контроллера создается большой zip архив и отдается пользователю через send_file t.path, type: 'application/zip', filename: "#{file_name}.zip"
Такое поведение плодит кучу больших архивов, и место на сервере стремится к нулю(
Вопрос, существуют ли какие нибудь best practices для таких задач. или как сразу после того как пользователь скачал большой архив, его удалить. Я не понимаю куда копать, чтобы точно знать что пользователь скачал архив, у него может быть разный интернет, и по таймауту удалят считаю плохой идеей( первое что пришло в голову

Google

Mark
25.08.2016
10:41:51
привет
подскажите как вешать проверку на доступ в activeadmin
юзаю cancan
?
на доступ к определенной странице в админке

Alex
25.08.2016
11:24:34
Странице или модели?

Dan
25.08.2016
11:33:35
а если в апи делать кстати проверку, то делать на каком уровне? контроллер?

Mark
25.08.2016
11:38:54

Admin
ERROR: S client not available

Alex
25.08.2016
11:39:02
Значит по модели

Mark
25.08.2016
11:39:16
к модели
да

Alex
25.08.2016
11:39:19
https://github.com/CanCanCommunity/cancancan/wiki/defining-abilities

Mark
25.08.2016
11:40:36
спс, щас чекну
блин
ну в абилити я прописал все
как щас проверку-то делать

Nikolay
25.08.2016
11:49:28
помоему тебе просто скоупы надо.
в модели прописываешь скоупы 5min 10min, 1h и в них model.where{created_at: 5.mins.ago} как-то так

Google

Dan
25.08.2016
11:52:07

Alex
25.08.2016
11:52:31

Dan
25.08.2016
11:53:11
active admin это когда с вьюхами ?

Alex
25.08.2016
12:01:10
http://activeadmin.info/
Но это сложный гем ))
но крутой

Lupsick
25.08.2016
12:04:21
С пятыми рельсами не работает
И лучше его не юзать если не хочется страдать потом

I
25.08.2016
12:04:56
работает с пятыми рельсами =/

kolas
25.08.2016
12:05:20
там же есть доки http://activeadmin.info/docs/13-authorization-adapter.html#setting-up-your-own-authorizationadapter

I
25.08.2016
12:05:49
но если нужна работа с nested forms - то там все равно приходится самому все делать

Nikolay
25.08.2016
12:06:30
я поэтому от АА и отказался

Alex
25.08.2016
12:16:28
код генеришь для ерб через баш ))

Nikolay
25.08.2016
12:18:50
ога. 146% :)
у меня еще перлятина генерит перлятину для другой перлятины :)
башем я генерил новый код симпл формы на самом деле, потому как его надо было аккуратно подсунуть на замену текущего
и не забыть ни одного поля
мог и на рубях сгенерить, и прямо в консольке рельс. но рядом парсились логи опача ;)

Alex
25.08.2016
12:32:48
Т.е это одноразовый код был?
Но если в форме много полей то что то не так.