
I
24.10.2016
07:45:06
Да, не надо логики во вьюхах
Я раньше декораторы через draper делал

Evgeny
24.10.2016
07:46:42
Можешь кинуть пример простетский, а то декор ассоциируется с оберткой, типа обычный метод, чтобы не писать длинную конструкцию
some_action.decor, some_action.my_helper. Просто я срау с руби начил практически программирование, часто питонщики используют это слово, а в руби туториалах, не сложных книгах про это ни слова

Google

Alex
24.10.2016
07:49:01
draper

Evgeny
24.10.2016
07:49:18
Ок ща загуглю)

Alex
24.10.2016
07:52:49
это для моделек
декораторы разные бывают
можно класс обернуть а можно конкретный метод

Дмитрий
24.10.2016
07:54:43
Если уж оставишь try, то link.user&.email (для mri2.3 и выше)

Антон
24.10.2016
08:04:58

Evgeny
24.10.2016
08:05:36
draper
Спс, непременно удобная штука, заюзаю сегодня же!) ServiceObject юзаю для решения схожей пробелмы, только в контроллере чтобы логикой не заваливать например

Антон
24.10.2016
08:05:48
http://apidock.com/rails/Module/delegate

Alex
24.10.2016
08:06:04
можно даже несколько сервисов в один экшен объединять

Антон
24.10.2016
08:07:00

Alex
24.10.2016
08:07:26
https://github.com/collectiveidea/interactor

Google

Alex
24.10.2016
08:07:33

Антон
24.10.2016
08:10:12
норм, но объединять бы не стал
для данного кейса делегатора должно хватить всем

Alex
24.10.2016
08:12:26

Антон
24.10.2016
08:12:45
http://apidock.com/rails/Module/delegate allow_nil
оу, вы там еще наспамили
я только кофе успел сварить

Evgeny
24.10.2016
08:16:54

Антон
24.10.2016
08:17:36
render(current_user || Guset.new)
*кешированию, конечно, щас запутаю всех
кто бы чего не говорил, и я в том числе, про то что логика во воьюхах - плохо
но есть разумные перделы
- if current_user.persisted? не то чтобы логика

Evgeny
24.10.2016
08:20:49
Ну я пока так, пробую, анализирую, смотрю, чтобы не захламливало лишнем

I
24.10.2016
08:21:19

Антон
24.10.2016
08:22:13

I
24.10.2016
08:22:32
кэшировать - пожалуйста

Антон
24.10.2016
08:23:36
ну у нас речь про навбар который постоянен на всех страницах
или про страницу профиля например которая тоже статична 99% времени
сам бог велел кешировать

Alex
24.10.2016
08:24:32
.persisted? не то что я бы стал выносить во вьюху

I
24.10.2016
08:24:33
не, тут хер поспоришь. Я о том, что где-то там у человека есть link.user.email, который с большой долей вероятности не имеет закэшированного user, что ведет к дополнительному запросу

Alex
24.10.2016
08:24:36
юзер либо есть либо его нет )

Google

Антон
24.10.2016
08:25:22
но серебряной пули нет

Alex
24.10.2016
08:28:24
Не логично спускаться до представления модельки тут имхо
либо передаешь модельку с юзером либо она nil

Антон
24.10.2016
08:29:02
а если передаешь Guest.new?
у тебя form_for каждый раз персистед юзает, ты же не паришься?

Alex
24.10.2016
08:29:49
он делает это под капотом и он хелпер

Антон
24.10.2016
08:30:13
а какую такую логику ты предлагаешь что персистед - плохо?

Alex
24.10.2016
08:30:31
зачем передавать Guest.new если по факту объекта нет?

Антон
24.10.2016
08:30:43
Guset.new - есть объект

Alex
24.10.2016
08:30:51
нет, есть кейсы где надо только что созданную модельку на форму отрисовать, но я говорю про обычный кейс где ты гет отображаешь.

Антон
24.10.2016
08:31:32
не бывает обычных кейсов :)

Alex
24.10.2016
08:31:46
Полно их.
Если бы все было необычным кейсом - считать сроки было бы невозможно.

Антон
24.10.2016
08:32:19
слишком категорично
передавать во вьюху можно и nil, если очень хочется, и это еще никто не запретил
конкретно для этого обычного кейса я аргументировал

Alex
24.10.2016
08:39:05
со времен rails 1 веб сильно изменился.
ruby конечно не js, но двигаться вперед надо.

Google

Антон
24.10.2016
08:39:36
вот это вброс!

Alex
24.10.2016
08:39:39
Большинство не юзают старые гемы, а пытаются найти свежие.

Антон
24.10.2016
08:40:15
прям риторический вызов :)
кейс с рендером паршила для юзера не изменился за, эмммм… 10(?) лет
даже 11 по моим подсчетам

Alex
24.10.2016
08:42:48
Там было кеширование?

Антон
24.10.2016
08:43:12
да, кеширование - старая тема

Alex
24.10.2016
08:43:27
и Etag тогда был?
last-modified-since или как там его

Admin
ERROR: S client not available

Антон
24.10.2016
08:44:02
не мой метод

Alex
24.10.2016
08:44:03
Ладно не важно, я сливаюсь.
Я не сидел на первых рельсах поэтому по существу мне нечего сказать.

I
24.10.2016
08:55:41
я только со вторых сидел, там были свои особенности тогда

Антон
24.10.2016
08:56:28
да почти все тоже самое
вот раньше SQL был во вьюхах
теперь нет - вся разница

Mikhail
24.10.2016
10:37:43

Антон
24.10.2016
10:38:14
и щас можно во вьюхах писать sql

Mikhail
24.10.2016
10:38:21
Я так и делаю)
?

Google

Антон
24.10.2016
10:38:30
красаучег

Mikhail
24.10.2016
10:38:54
а коннект к бд тоже во вью пилили?
я пришел в рельс, когда переход был на 4.0

Антон
24.10.2016
10:39:28
не, AR же уже был
AR был сразу

I
24.10.2016
10:39:55
AR просто при переходе на 3.0 поменялся

Mikhail
24.10.2016
10:39:59
Аааа вот и ответ, почему хипстеры сразу рельсу полюбили

Антон
24.10.2016
10:40:14
сам ты хипстер :)
мы любили рельсу еще когда не было хипстеров
только эмо

Mikhail
24.10.2016
10:41:04
Аххаах) то есть ты кодил и мечтал убить себя от счастья

Антон
24.10.2016
10:41:11
дада :)

Mikhail
24.10.2016
10:41:12
и рыдал с каждым коммитом

Антон
24.10.2016
10:41:25
тогда не было коммитов

Mikhail
24.10.2016
10:41:32
Ничего не поменялось?

Антон
24.10.2016
10:41:47
ахахаха
я внедрил у себя в конторе SVN
это был прогресс
и мы начали страдать

I
24.10.2016
10:42:18
я до сих пор помню, как я в одной большой конторе не нашел никаких CVS
это было забавно
ежики кололись и плакали
но от CVS отказывались