@proRuby

Страница 1280 из 1594
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
а еще лучше делать def foo return @_foo if defined? @_foo @_foo = current_user.bla.bla end
не лучше. Не так читаемо и скорее всего не так быстро.

Ваня
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> Очевидно чем больше таблица тем больше будет запросов, это можно как то оптимизировать?

что-то нихрена не понятно

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
?

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
Ваня
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 как раз содержит данные которые в этих продуктах были изменены то есть на каждый продукт мне нужно найти в изменениях данные по нему, от сюда потребность в запросе на каждый продукт

Dima
05.07.2018
08:10:31
добрый день. объясните пожалуйста, для чего применяется оператор ||=? например, в кейсе "назначить значение переменной". типа было а = 2, сделали а ||= 3, она стала равной 3. ведь если просто указать а = 3, значение точно так же перезапишется. в чем разница?
Практическое использование "Инициализация необъявленной пременной" на пример в есть метод класса read_from_site который считывает какое то значение с сервера. class Reader def read_from_site @server = connect_to_the_server @server.get_value end end Каждый вызов метода read_from_site будет дергать нове подклчеие к серверу. Что не удобно, и ресурсоемко если этот код изменить поменяв @server = connect_to_the_server на @server ||= connect_to_the_server. То instance variable (переменная экземпляра) @server один раз установиться через вызов метода connect_to_the_server, а дальше сonnect_to_the_server вызываться не будет. По причинам описанным выше другими комметаторами. Таким образом через 2 символов в строчке, мы решаем вопрос начальной инициализации значения. class Reader def read_from_site @server ||= connect_to_the_server @server.get_value end end

[1] pry(main)> a = false => false [2] pry(main)> a ||= true => true [3] pry(main)> a => true [4] pry(main)>
Все правильно, в Ruby 2 ложных значения false и nil.

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
безусловно, это был пример для @Fedcomp
а то был неновящевый комментарий для @Fredcomp через вас. Любит этот парень себя пяткой в грудь бить, о своем знании языка.

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

Google
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
А я на Владимира ?

Владимир
05.07.2018
08:52:25
походу у нас победа по причине неявки противника

поздравляем @Fedcomp с ошеломляющей победой!

силы были не равны, но не смотря ни на что он смог пафосно превозмочь религию здравым смыслом!

скука.
давай сказани чего-то жизнеутверждающего и будем расходится

Alex
05.07.2018
08:54:22
о, кстати

как вы относитесь к тому что на собесе спрашивают сложность алгоритма?

Tim
05.07.2018
08:54:45
поздравляем @Fedcomp с ошеломляющей победой!
рано. Дима еще сделает камбек

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

Google
Alex
05.07.2018
08:55:19
F(O) ебобо
вот это ебгобо я не знаю короч

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

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

Страница 1280 из 1594