
Nikita
04.07.2018
20:42:53
@_foo ||= current_user.bla.bla

Zamira
04.07.2018
20:48:22
Некоторым нравится писать 2 строки вместо одного)

Google

Felix
04.07.2018
20:49:47
четыре) вместе с объявлением функции?

Nikita
04.07.2018
20:50:16
Каждый дро... как он хочет

Gleb
04.07.2018
20:51:04
но если почитать выше, то вы узнаете почему так по факту самый правильный вариант )

Nikita
04.07.2018
20:54:20
Там субъективное же мнение, не?)

Gleb
04.07.2018
20:55:54
[1] pry(main)> a = false
=> false
[2] pry(main)> a ||= true
=> true
[3] pry(main)> a
=> true
[4] pry(main)>
ну и если nil уже есть в переменной, код тоже выполнится
субъективно только желание поставить андрескор

Nikita
04.07.2018
20:57:31
Ну nil или фолс переопределит, очевидно

Zamira
04.07.2018
20:58:24
Я вас умоляю. Кто такие вещи через ||= пишет? Он рассчитан на данные, которые не меняются, но вычисляются долго. Ясен пень false/nil переопределит.
И это вовсе не значит что 2 строки выше правильнее.
Надо методы и операции использовать уместно.

Gleb
04.07.2018
21:02:12
А что долго вычислять false/nil нельзя? )

Zamira
04.07.2018
21:04:54
Преимущественно - нет

Google

Nikita
04.07.2018
22:39:46
Но тут на самом деле очень сильно зависит от кейса)

Плюшка
05.07.2018
00:10:34

Alex
05.07.2018
00:44:13

Ваня
05.07.2018
06:46:59
Доброе утро! я в рельсах во вьюхи рисую таблицу и в каждой строке мне нужно сделать запрос в базу что то вроде entity.changes.where(property: 1, status: ‘ok’) как можно это оптимизировать?

Felix
05.07.2018
06:47:51
что-то нихрена не понятно

Ilya
05.07.2018
06:47:59
ты видимо не хочешь делать запросы из таблицы
(из вьюхи)
или же я не понимаю что такое вьюги

Nikolay
05.07.2018
06:52:01
не лучше. Не так читаемо и скорее всего не так быстро.
> Задает значение которое скажешь если в переменной лежит nil
> или false
> Ого, разве?
Ты выше писал что про кейс с false не думал раньше…т.о. ты делаешь выбор м\у “читаемо” и “правильно работает всегда” в пользу “читаемо”)

Ваня
05.07.2018
06:54:07
да, поправил
(из вьюхи)

Nikolay
05.07.2018
06:54:37

Zamira
05.07.2018
06:55:48

Ваня
05.07.2018
06:55:48
во вьюхе ты рисуешь таблицу, что то вроде
<table>
<tbody>
- @date.each do |d|
<tr>
<td><%= d.name %></td>
<td><%= @entity.changes.find_by(status: ‘ok’) %></td>
</tr>
</tbody>
</table>
Очевидно чем больше таблица тем больше будет запросов, это можно как то оптимизировать?
что-то нихрена не понятно

Nikolay
05.07.2018
06:56:16

Zamira
05.07.2018
06:56:22
Может вью СУБД имеется в виду, ребят?

Tim
05.07.2018
06:56:30
сделать pluck?

Google

Zamira
05.07.2018
06:56:41
А не, рисую... не то

Tim
05.07.2018
06:56:57
и только ради бога, не делай запросы во вьюхе

Zamira
05.07.2018
06:57:11
?

Felix
05.07.2018
06:57:20

Tim
05.07.2018
06:57:42
в контроллере коллекция с результатами должна быть, она создается либо в модели, либо с использованием сервис обжект

Zamira
05.07.2018
06:57:51
Можно вытянуть рилейшн со всеми нужными связями(если не мульён записей) и итератором пройтись. Нельзя в цикле дергать базу.

Ваня
05.07.2018
07:02:15
ну тут получаеться тогда цикл в цикле, и по результату когда я дергаю базу у меня быстрей рендерится

Felix
05.07.2018
07:02:28
не быстрее
код покажи

Ваня
05.07.2018
07:03:21

Tim
05.07.2018
07:04:48

Ваня
05.07.2018
07:04:50
код покажи
вот контроллер
def show
@sale = @shop.scheduled_sales.find(params[:id])
service = FilterProductsService.new(@shop, @sale.filters.map { |f| f.attributes.symbolize_keys })
@products = service.products
@data_changes = @sale.data_changes
end
во вьюхе я показываю продукты
а data_changes как раз содержит данные которые в этих продуктах были изменены
то есть на каждый продукт мне нужно найти в изменениях данные по нему, от сюда потребность в запросе на каждый продукт

Tim
05.07.2018
07:05:19

Dima
05.07.2018
08:10:31
p "false" unless false
p "false" unless nil
p "ture" if 0


q3n0x
05.07.2018
08:22:45
безусловно, это был пример для @Fedcomp

Dima
05.07.2018
08:23:37

Владимир
05.07.2018
08:25:51
охохо!
кажется у нас начинаться вялотекущая холодная война!)

Google

Alex
05.07.2018
08:41:13

rekero
05.07.2018
08:41:37

Владимир
05.07.2018
08:42:57
вы продолжайте, продолжайте
не обращайте на нас внимание

Tim
05.07.2018
08:44:37
лол

Admin
ERROR: S client not available

Tim
05.07.2018
08:44:40
дима привет
я ставлю на диму

Zamira
05.07.2018
08:46:53
А я на Владимира ?

Alex
05.07.2018
08:49:46

Владимир
05.07.2018
08:52:25
походу у нас победа по причине неявки противника
поздравляем @Fedcomp с ошеломляющей победой!
силы были не равны, но не смотря ни на что он смог пафосно превозмочь религию здравым смыслом!
скука.
давай сказани чего-то жизнеутверждающего и будем расходится

Alex
05.07.2018
08:54:22
о, кстати
как вы относитесь к тому что на собесе спрашивают сложность алгоритма?

Tim
05.07.2018
08:54:45

Subb98
05.07.2018
08:55:01

Владимир
05.07.2018
08:55:04
я не препод (
ну типа как ты рад всех тут видеть, как долго шел к этой победе и благодаришь всех кто тебе в этом помог!

ShadoWalkeR
05.07.2018
08:55:07

Google

Alex
05.07.2018
08:55:19

Subb98
05.07.2018
08:55:27

Tim
05.07.2018
08:55:27

Владимир
05.07.2018
08:55:35
потому как для одного алгоритм покажется простым а кто то умрет пытаясь осознать

Tim
05.07.2018
08:55:55
если ты 3 вложенных цикла от 0 до n не сможешь оценить как n^3, то
ну такое

Владимир
05.07.2018
08:56:03
при этом и тот и тот будет норм специалистом

Subb98
05.07.2018
08:56:08

Anton
05.07.2018
08:56:29

Alex
05.07.2018
08:56:50

Tim
05.07.2018
08:56:55

Alex
05.07.2018
08:56:55
O(n2) и прочее.

Tim
05.07.2018
08:57:31
какая-нибудь дичь с ароматизацией или как это там