@rubylang

Страница 430 из 1684
Mikhail
23.09.2016
15:13:07
Ты когда пишешь данные в бд на основе данных пришедших от юзера их нужно валидировать

под свою структуру и ожидания

любые данные не константы желательно валидировать

ojab
23.09.2016
15:14:51
речь, вроде, про аттрибут который мы сами генерируем

Google
ojab
23.09.2016
15:14:59
он не является пользовательскими данными

Mikhail
23.09.2016
15:15:02
Он генерируется на основе данных юзера

ой блядь

как я устал. Ну я же написал выше

ojab
23.09.2016
15:15:24
данные юзера надо проверять, да

Mikhail
23.09.2016
15:15:25
что он генерируется на основе данных пользователя

Vitaliy
23.09.2016
15:15:29
может не до конца вник в проблему - но виртуальный атрибут не решит проблему?

ojab
23.09.2016
15:15:49
wtf виртуальный аттрибут?

Mikhail
23.09.2016
15:15:59
Тут Виталя проблема в том, что аттрибут в модели нельзя изменять в коллбеке before_validation

не феншуй якобы

Vitaliy
23.09.2016
15:16:14
пара методов в модели AR - геттер и сеттер. Его можно валидировать через стандартные AR sexy validations, например.

Mikhail
23.09.2016
15:16:18
friendly_id gem вроде тому подтверждение что не феншуй

ибо аттрибуты он пишет как раз в before_validation

Google
Mikhail
23.09.2016
15:17:52
и чтобы в слуг записались парамы надо запустить валидацию а не сохранение. И не у кого проблем такой коллбек не вызывает

не вижу причины категорично не рекомендовать изменять аттрибуты в before_validation

У нас есть hidden_attribute

он генерируется на основе данных юзера

у нас есть юзер с правами can_change_hidden_attribute

у него в форме есть этот аттрибут

как ты будешь валидировать этот скрытый аттрибут для юзера я хз

ojab
23.09.2016
15:20:04
https://github.com/norman/friendly_id/issues/660

Mikhail
23.09.2016
15:20:20
а вот варить данные до валидации нормально

а че ты в гем скакнул

у тебя аргументы убежали чтоль.

Vitaliy
23.09.2016
15:20:39
Тут, мне кажется, частично страхи те же, что и с другой магией рельс. Пока до конца не понимаем принцип работы - предпочитаем не использовать магию вовсе.

ojab
23.09.2016
15:20:54
ну очевидно что изменение данных перед валидацией может вызывать проблемы

Mikhail
23.09.2016
15:21:10
Ну от контекста

ojab
23.09.2016
15:21:13
поэтому зашёл в issues и нашёл первую попавшуюся проблему из-за этого

Vitaliy
23.09.2016
15:21:25
с турболинками так же, с spring так же, с N+1 проблемой так же

Mikhail
23.09.2016
15:21:35
Все скрытые поля всегда собираю именно в before_validation

остальное в сеттере

если чтото постоянное то можно в before_save

ojab
23.09.2016
15:22:12
если провалидированы входящие данные — мы сами генерируем поле из корректных входящих данных

Google
Mikhail
23.09.2016
15:22:36
ну пользователь может передать не корректные данные

нам надо их проверить же

ojab
23.09.2016
15:22:52
да

Mikhail
23.09.2016
15:23:11
ну вот для пользователя который эти данные не передает, мы собираем сами и отправляем на валидацию

но если пользователь передал данные, например админ, мы пропускаем коллбек и сразу в валидацию

это нормальная практика

а если ты переделываешь данные это можно в setter

Сергей
23.09.2016
15:25:32
а что там за оболочка такая странная?

Mikhail
23.09.2016
15:25:39
мы валидируем значение которые пишутся в ДБ

просто они могут собираться нами, а могут указываться пользователем

Mikhail
23.09.2016
15:26:08
у которого есть права записать это поле

ojab
23.09.2016
15:26:19
ну ок

Kam
23.09.2016
15:37:59
А вот я подумал

Без валидации нельзя решить эту проблему

Подключить uri

Спарсить то что вводит юзер

И если нету протокола добавить его

ojab
23.09.2016
15:40:00
да, парсить/проверять надо в валидации

Google
Rustam
23.09.2016
16:37:14
fish неплох
Это вот этот https://fishshell.com/

Антон
23.09.2016
16:39:06
а у меня есть две подруги сестры блезняшки рельсовички у них фамилия Ахмодеева

бе-бе-бе :-Р

очень уж созвучно с Ахматгилаев, скорее всего трудности перевода

Сергей
23.09.2016
16:42:29
я вот тоже сижу и думаю…

Denis
23.09.2016
16:58:31
Всем привет, есть ли способ реализовать такое Есть страницы и есть категории c friendly_id, вот роуты resources :pages, only: :show, path: '' resources :categories, only: [:show, :index], path: ''

Mikhail
23.09.2016
17:00:01
Народ подскажите. Пишу систему букинга. У меня есть расписание на неделю по дням. То есть каждый день недели имеет определенное время посещения. Мне надо бронировать это время и показывать что занято. Но если я буду создавать timetable на каждое время, каждого дня, каждой недели, каждого года, то бд очень быстро наберет миллионы записей. Как быть?

Антон

Admin
ERROR: S client not available

Mikhail
23.09.2016
17:01:05
все равно это выйдет в гемор

Сергей
23.09.2016
17:01:18
ну так и задача не из простых)

Mikhail
23.09.2016
17:01:31
Да и думаю что пока не наплодил эту бяку, думаю может изящнее решить

Получать расписание. Определять 7 дней вперед с числами и именами дней. Далее получать список броней с выборкой на дней вперед. И мержить полученные данные в мое расписание и только потом рендерить расписание в вью. Проверять

Я просто боюсь что логика проверки станет сложна и будет приличная задержка

так по идее 2 запроса плюс мержить парамы брони в календарь

Сергей
23.09.2016
17:04:07
тебе нужно определить наличие свободных дней ?

Mikhail
23.09.2016
17:04:16
У меня есть расписание

Google
Mikhail
23.09.2016
17:04:20
На неделю

У каждого дня может быть рандомное время посещение

например 8-9 слотов

в 10 в 12 в 14 в 16 и тд

юзер может бронировать это время

Можно тупо создавать на каждое время запись в бд и ставить is_free:boolean

Сергей
23.09.2016
17:05:30
не

Mikhail
23.09.2016
17:05:40
но клиентов будет 1000 например

и это по 10000 записей каждый день

быстро наберу миллионы

Сергей
23.09.2016
17:06:05
воу

10К записей в день?

один и тот же юзер может занять время уже занятое собой?

Mikhail
23.09.2016
17:07:38
ну представь даже сейчас 100 клиентов, у каждого 10-20 контор. Каждая контора в день забирает 8-10 записей если я буду каждое время писать отдельно в табличку

100*10*10

ojab
23.09.2016
17:07:55
А что мешает создавать только записи для забронированных времён и остальное считать свободным?

Mikhail
23.09.2016
17:08:06
календарь

Mikhail
23.09.2016
17:08:21
ну вот например сегодня пятница

Антон
23.09.2016
17:08:22
у меня 6500 уников в день которые генерируют больше 10 записей

на двух инстнсах

10к записей фигня

Сергей
23.09.2016
17:08:47
ну так ты же календарь строишь независимо от занято/свободно просто ты заполняешь календарь на основе данных из бд

Страница 430 из 1684