
Anton
28.03.2018
14:48:49

Aleksey
28.03.2018
14:49:29
или если сломается.. ух помню коллега до меня пилил mongo-like query language для SQL базы

Anton
28.03.2018
14:49:37
или так

Aleksey
28.03.2018
14:49:39
вот это было как в истории про батю и борщ

Google

Anton
28.03.2018
14:49:48
одним словом, я перестраховываюсь и пишу явно

Максим
28.03.2018
14:49:51

Anton
28.03.2018
14:49:52
или копирую

Sergey
28.03.2018
14:50:15

Максим
28.03.2018
14:50:21
И все было Реал ясно просто был модуль и ты его подключал к модели

Aleksey
28.03.2018
14:50:28
а еще любой такой гениальный код, если он действительно гениальный и очень сложный, должно быть легко выкинуть в случае необходимости

Максим
28.03.2018
14:50:30
Типа сортаьл и сервабл
Серчабл и сортабл*

Vasiliy
28.03.2018
14:50:54
че че о чем трёп

Максим
28.03.2018
14:51:15
Помнишь?

Vasiliy
28.03.2018
14:51:23
да
и я тебе говорил что говна навернёшь, помнишь?

Google

Максим
28.03.2018
14:56:49
так всё ок же
не навернул
просто обсуждаем типа норм ли впринципе метапрограммирование
я то там всё сделал чтоб не навернуть
типа моя штука ну вообще никак не мешает другим методам работы с таблицами

Roman
28.03.2018
15:01:21
надо просто доку нормальную оставлять
типа какие методы генерятся
хотя бы в виде комментариев в коде

Максим
28.03.2018
15:02:19
ДА
да*

Roman
28.03.2018
15:04:52
я обычно если сильная метамагия с define_method - справа в виде комментария построчно пример набрасываю
чтоб хоть что-то одно нагрепалось =)

Black
28.03.2018
15:20:10
ДА
Ну что ты решил задачу? Если нет, заново поставь вопрос в стиле Дудя или Познера. Просто интересным показался твой вопрос.

Максим
28.03.2018
15:20:24
решил конечно
пользуемся
ток фронт не доделан был
поэтому проект пока отложили
пушо дедлайн пройден
поэтому опыта в проде этой штуки нет
а так да в итоге получился по сути обрезаный и наверное более криво написаный рансак

Google

Максим
28.03.2018
15:22:03
плюс прослоечка в аппликейшн_контроллер которая парсила входящие параметры если они шли на индекс и автоматически вызывала нужный сгенерирвоаный метод поиска или сортировки
мы с фронтом договорились что когда на индекс идёт типа можно чтоб было два массива параметров - сёрч парамс и сорт парамс
в сёрч парамс могли приходить названия столбца и тип поиска

Anton
28.03.2018
15:23:15
помню пилил шутку, которая фильтровала данные как в гитхабе
т.е. author:name label:test search text

Максим
28.03.2018
15:23:51
типа если приходило айди - возвращали с нужным айди
если айдис - то возвращали айди с от и до нужных
если айдис_каунт - то количество с таким то айди
и тд

Anton
28.03.2018
15:24:18
сделал ее 2мя объектами по сути (на самом деле второй так и не доделал), парсером, который строку в токены пилит + в репозитории логику фильтрации по релейшенам
ну и объект, который все это оборачивает

Максим
28.03.2018
15:24:48
а у меня в итоге 2 модуля и пара методов в апликейшн контроллере
что изменил бы ща - обернул бы методы в апликейшн контроллере тоже
тогда чёт не дошло в голову
да и вообще вопрос да
надо ли такому быть в апликейшн контроллере
типа по сути это был не экшн на который шлётся запрос

Anton
28.03.2018
15:25:29
не думаю

Максим
28.03.2018
15:25:35
а логика парса параметров

Anton
28.03.2018
15:25:40
я бы отдельный сделал объект с логикой

Максим
28.03.2018
15:25:43
как было бы правильнее?
ну вот сделал бы объект

Anton
28.03.2018
15:25:48
и его в экшен пихал

Google

Максим
28.03.2018
15:25:51
а потом как?
подключал бы его к апликешйн контроллеру?
не было ли бы это считай тем же самым?

Anton
28.03.2018
15:26:36
я вот так делал и то, считаю, что это не правильно
https://github.com/davydovanton/octostar/blob/master/apps/web/controllers/repos/index.rb#L12

Амир?
28.03.2018
15:26:52
А пушо это шо ?

Максим
28.03.2018
15:27:04
потому что

Andiskiy
28.03.2018
15:27:13
ребята, подскажите пожалуйста, почему если генерю xlsx - он не открывается. сделал как http://railscasts.com/episodes/362-exporting-csv-and-excel?view=asciicast
ругается на формат файла.
а если делаю xls - опять предупреждение :
действительный формат отличается от того что указано в имени файла (xls). подскажите пожалуйста, как избавиться от предупреждения?

Амир?
28.03.2018
15:27:17
:)

Максим
28.03.2018
15:27:48

Anton
28.03.2018
15:28:01
во все бы и передавал бы
явно

Максим
28.03.2018
15:28:04
норм ли было бы в апликейшн контроллере писать типа бифо индекс :метод
ну да
вот тоже хороший вопрос
наверное лучшим вариантом тогда
было бы делать как ты
но
сделать генератор контроллера кастомный

Anton
28.03.2018
15:28:37
зачем?

Максим
28.03.2018
15:28:38
чтоб уже с этим генерировал метод индекс

Google

Anton
28.03.2018
15:28:42
явно пишешь контроллеры все и все

Максим
28.03.2018
15:28:59
ну просто у меня в црм почти все контроллеры это круды

Anton
28.03.2018
15:29:03
сам контроллер не должен быть толстым в таком случае

Максим
28.03.2018
15:29:04
с повторяющейся логиков

Anton
28.03.2018
15:29:09
просто вызов объекта + обработка результата

Максим
28.03.2018
15:29:23
ну он и не будет толстым

Anton
28.03.2018
15:29:24
скопируешь 4 строчки и все, в чем беда?

Максим
28.03.2018
15:29:25
я же говорю
там просто в индексе вместо
def index
render Model.all
end

Black
28.03.2018
15:30:12

Максим
28.03.2018
15:30:37
будет типа
def index
render Searchable.search(Model, search_params)
и типа так бы и генерировал бы их сразу
ну по сути реал ток 2 строчки поправить руками
но можно же и автоматизировать
с названиями я не думал так что не кидайтесь камнями плиз

Anton
28.03.2018
15:31:42
так почему не сделал бы вот так
def index
result = Searchable.search(Model, search_params)
if result
# success case
else
# failure case
end
end
и все

Максим
28.03.2018
15:31:56
да можно и так я не против

Vitaly
28.03.2018
15:32:10

Максим
28.03.2018
15:32:21
ну это реал самая база на самом деле
просто теор часть не так часто же в голове держишь

john
28.03.2018
15:32:46
ооп - это ритуальные слова