
Roman
13.12.2017
13:51:13
ага

No
13.12.2017
13:51:15
но думаю не стоит этого делать, проекту много лет
опасно

Roman
13.12.2017
13:51:29

Google

No
13.12.2017
13:51:37
не, тут проект крутой, мне нравится
но исторически сложилось, что mysql )
почему - окутано тайной времен

Roman
13.12.2017
13:52:03
я знаю такие проекты :) предыдущая работа как раз. проект с 2006 года
и там мноооого таких тайн

No
13.12.2017
13:52:18
ну, не настолько древний, плюс кодовая база обновлялась адекватно
тобишь говнокода лютого нет

Roman
13.12.2017
13:52:25
значит больше повезло

No
13.12.2017
13:52:26
всё красиво
но база осталась исторически какая была в начале )

Roman
13.12.2017
13:52:55
короче сейчас у нас есть клиент один. ему делали что-то адовое с финансами
и там внутри SQL на SQL
и SQL прогоняет

Google

Roman
13.12.2017
13:53:26
прям рубишный метод - а внутри execute
и ничего. норм
пытались вначале арел - плюнули

No
13.12.2017
13:53:59
меня тут только одно пугает

Roman
13.12.2017
13:54:05
но опять же маленькие плюшки я люблю на ареле писать

No
13.12.2017
13:54:06
большинство рубистов боится SQL
да что там
я тоже его побаиваюсь писать
но в выборе между сомнительной пользой от написания квери на руби или сразу на SQL - выберу пожалуй второе

Roman
13.12.2017
13:54:49
как только ты пишешь что-то серьезней блога за 15 минут - все равно придется

No
13.12.2017
13:54:56
а то уже придумали кофискрипт, который вроде красивая прослойка, но на деле - работает не совсем так, как хочется

Roman
13.12.2017
13:55:19
ну я норм пишу на кофе

No
13.12.2017
13:55:32

Roman
13.12.2017
13:55:50
преимущество ареля в том, что ты можешь его миксовать с АР

No
13.12.2017
13:56:07

Roman
13.12.2017
13:56:16
User.not_deleted.arel_method_here.limit(10)

No
13.12.2017
13:56:46
т.к. было бы удобно написать часть запроса на activerecord (там, где всё просто)

Roman
13.12.2017
13:56:50
ага

No
13.12.2017
13:56:54
и дописать груп бай и каунты после
но по факту

Google

No
13.12.2017
13:57:07
так же можно и без арела
только он правда обернет в модели
что не ок

Roman
13.12.2017
13:57:28
почему не ок

Nikita
13.12.2017
13:57:29
@dreyks not_deleted такое
https://github.com/rubysherpas/paranoia

Roman
13.12.2017
13:57:47
а что ты будешь в темплейтах? хеши юзатб?

No
13.12.2017
13:58:17
почему не ок
не очевидно, ты видишь ActiveRelation с Event внутри, а у Event-а на самом деле совсем другой набор полей

Roman
13.12.2017
13:58:43
а
ну тогда тебе вообще не нужен АР получается
бери синатру
и mysql2 gem

No
13.12.2017
13:59:39
Grape уже в проекте, его юзаем )

Roman
13.12.2017
13:59:43
ну да
просто я старался как можно меньше писать против ветра
оставаться в рамках АР
и моделей
тогда арель подходит

Google

No
13.12.2017
14:00:39
Просто идея в чём - было бы удобно запросить скоуп event-ов через active record (с существующими скоупами), а после заюзать SQL(Arel?) для групинга, аггрегаций и прочего. Но на выходе в идеале получить хеш
Да, Arel получил некоторые плюсы
Буду копать его подробнее пожалуй

Roman
13.12.2017
14:01:14
грубо говоря мне не нравится когда все достаешь руками
отдельно юзеров, потом по их айдишкам - что-то другое
хочу чтобы ООПшненько
а еще кеширование
execute кажись не lazy
а арел - lazy
при прямых запросах даже если темплейт закеширован - запрос выполнится

No
13.12.2017
14:04:34
да, советы ко вниманию принял, спасибо
посмотрю на Arel, если всё так как я себе представил - то, что нужно

Андрей
13.12.2017
15:48:36
Андрей:
Здраствуйте. У меня в рельсах разные ксрф токены(. Что делать? Это не помогло
do ->
token = document.querySelector('meta[name="csrf-token"]').innerHTML
input = document.querySelector('input[name="authenticity_token"]').value
if token != input
input = token
return

Fedor
13.12.2017
15:58:25
Csrf и должны быть разными
Они специально так сделаны

kolas
13.12.2017
16:04:04
есть какой-нибудь стандарт по оформлению всяких сервис объектов в рельсах кроме трэйлблейзера?
трейлблейзер не нравится, но свое кастомное может потом поддерживать хреново будет

No
13.12.2017
16:05:32
это если совсем просто

kolas
13.12.2017
16:05:51
и еще папочку для презентеров и валидаторов

Google

No
13.12.2017
16:05:53
не стоит гнаться за стандартами, подберите что-то под нужды своего проекта
чтобы команде нравилось
и было максимально очевидно

kolas
13.12.2017
16:06:21
ну может умные люди что-то придумали,а я не знаю

No
13.12.2017
16:07:20
что нужно конкретно? расположение в проекте или какие-то бест практисы для написания сервисов?

Андрей
13.12.2017
16:08:02

kolas
13.12.2017
16:10:23
кроме треилблейзера
делаю сервис объекты под все операции, форм объекты для валидации, презентеры для хелперов вьюшек

Anton
13.12.2017
16:15:47

kolas
13.12.2017
16:16:27
хорошая вещь была бы, чтоб новые люди на проекте могли прочитать и сразу понять

Fedor
13.12.2017
16:16:48

Anton
13.12.2017
16:17:40
один публичный для ханани


No
13.12.2017
16:19:12
бест практисы, в общих чертах то понятно, но определенных соглашений еще не видел
Ну смотри. Я тебе буду говорить как человек, которые полгода назад искал что-то подобное в надежде "Ну а вдруг?". Каких-то единых стандартов ты не найдешь. Для сервисов можно юзать что-то (если нравится Command в траилблэйзере, рекомендую dry-transactions, если нравится максимально просто - interactor). Можно не юзать, лучше обсудить это с командой, наверняка у каждого есть гемы мечты). Формобджекты, презентеры - всё это довольно неплохо пилится само по себе, без сторонней помощи
Сразу предостерегу
Я долго искал гем для форм обджектов, чтобы он умел делать то, что я хочу (забить на нестед атрибуты и всё красиво и автоматически хендлить всё, что можно). В итоге нашёл парочку крутых гемов, но они тебя ограничивают очень сильно в рамках простых кейсов. Так что по итогу я сделал вывод, что если хочешь форм обджект - напиши его сам
Для презентеров вообще просто, если они тебе нужны - пишутся они максимально просто на PORO


Fedor
13.12.2017
16:22:04
Или настроил некорректно
Вообще вся работа с csrf обычно автоматическая, включил в контроллере и забыл
Если что то делаешь руками, то, скорее всего, делаешь не так