@rubylang

Страница 529 из 1684
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
норм, но объединять бы не стал

для данного кейса делегатора должно хватить всем

Антон
24.10.2016
08:12:45
http://apidock.com/rails/Module/delegate allow_nil

оу, вы там еще наспамили

я только кофе успел сварить

Я тут начал рефакторить свой код, начал service_object юзать, а во вьюхах избавляюсь от логики. НАпример пишут лучше сразу сделать например во вьюхе show_current_user, а если его нет, то соотвественно этот метод может вернуть какой-то объект, например current_user || Guest.new - типа NullPattern
это вот преждевременно вот я считаю это захламление для этого кейса логика во воьюхе - вполне ок во первых потому что поддается фрагментарному кешированию через подпись айдишника юзера хелперы этого не дадут сделать так что я бы впилил паршил с логикой тем более там вероятно всего два кейса а есть объект или нет объекта - не то чтобы логика вполне допустимо для вьюх

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
кто бы чего не говорил, и я в том числе, про то что логика во воьюхах - плохо но есть разумные перделы - if current_user.persisted? не то чтобы логика
я имею ввиду логику, которая совершает дополнительные запросы в бд. имхо надо минимизировать такие радости во вьюхах

Антон
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
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, если очень хочется, и это еще никто не запретил

конкретно для этого обычного кейса я аргументировал

Если бы все было необычным кейсом - считать сроки было бы невозможно.
а сроки считать все сложнее и сложнее если мы для обычных кейсов из rails 1 будем юзать паттерны 2016-го года можно впилить вьюху с персистед, без хелперов, без бизнес логики, закешировать и радоваться что все получилось просто и быстро без лишней маркетинговой зауми

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 отказывались

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