Size: a a a

Чат по руби

2020 June 17

mB

mr Bubble in Чат по руби
Vsevolod Avramov
UPD: Ещё на счёт .flats.any? - тут если использовать includes - он будет грузить все flats. Так что для flats, bents, cornices, moldings, glasses не подходит includes. Для них наверно стоит создать отдельный SQL запрос.
А что вы имеете ввиду под отдельным запросом? Где можно об этом почитать? Большое спасибо за ответ.
источник

mB

mr Bubble in Чат по руби
.
Подскажите пожалуйста, а насколько актуален данный курс? Ведь первое видео аж 6 лет назад было записано..
Вполне актуален, кроме некоторых моментов, которых не так много
источник

.

. in Чат по руби
mr Bubble
Вполне актуален, кроме некоторых моментов, которых не так много
Не совсем понял, разве в курсе он не использует довольно старую версию rails?
источник

mB

mr Bubble in Чат по руби
.
Не совсем понял, разве в курсе он не использует довольно старую версию rails?
rails там только в конце курса
источник

.

. in Чат по руби
mr Bubble
rails там только в конце курса
То есть курс конкретно по чистым рубям и устаревать там по сути нечему?)
источник

mB

mr Bubble in Чат по руби
Vsevolod Avramov
Там проблема с N+1. К сожалению, тут не видно, каким образом загружаются @order. Во первых это плохой нейминг. Судя по each - это массив ордеров. Надо добавить s в конце.
Затем у нас есть код вида order.flats.load.any? - Это и есть N+1. Для каждого order подгружаются из бд flats. Можно исправить это используя .includes(:flats) при выборе orders.
Тоже касается и .user.name (грузится пользователь) и прочего.
Кстати includes я пробовал в разных вариантах, может я что-то не так делаю, но никаких изменения я не заметил вообще в скорости рендеринга. Их работа ж не зависит от того где я запускаю код в development или production?
источник

mB

mr Bubble in Чат по руби
.
То есть курс конкретно по чистым рубям и устаревать там по сути нечему?)
Ага
источник

.

. in Чат по руби
mr Bubble
Ага
Спасибо)
источник

VA

Vsevolod Avramov in Чат по руби
mr Bubble
Кстати includes я пробовал в разных вариантах, может я что-то не так делаю, но никаких изменения я не заметил вообще в скорости рендеринга. Их работа ж не зависит от того где я запускаю код в development или production?
Да. Это без разницы. Если хочешь почувствовать разницу, нужно использовать бд с данными, приближенными к production. Ну и уйти от большинства N+1 и задеплоить разом.
источник

VA

Vsevolod Avramov in Чат по руби
mr Bubble
Вот так загружаются:
@order = Order.where("category like ? OR category LIKE ?","%door%", "%pvc%" ).group_by(&:color)
Может даже этот запрос работает долго. LIKE это конечно печально.
Про отдельный запрос - можно например сделать что-то типа:
order_counts = Order.merge(@orders).select("orders.id, count(flats.*) AS flats_count, ...").group(:orders.id).index_by(&:id)
А потом обращаться как order_counts[order.id].flats_count > 0
источник

mB

mr Bubble in Чат по руби
Vsevolod Avramov
Да. Это без разницы. Если хочешь почувствовать разницу, нужно использовать бд с данными, приближенными к production. Ну и уйти от большинства N+1 и задеплоить разом.
Я в development загрузил данные с продакшн базы и на них тренируюсь
источник
2020 June 18

PT

Pineapple Thief in Чат по руби
Vsevolod Avramov
Может даже этот запрос работает долго. LIKE это конечно печально.
Про отдельный запрос - можно например сделать что-то типа:
order_counts = Order.merge(@orders).select("orders.id, count(flats.*) AS flats_count, ...").group(:orders.id).index_by(&:id)
А потом обращаться как order_counts[order.id].flats_count > 0
Это выглядит подозрительно похоже на counter_cache
источник

s

sinecuraweb corp. in Чат по руби
подскажите, ребята

есть такой дом
<span class="c-red medium-font bold on-sale" data-auto="sale-price">
                       Sale RUB 1,288.49
                   <span class="  c-legal c-no-bold percent-off" data-auto="percent-off">(56% off)</span>
   </span>

мне надо получить цифру 1,288.49

делаю так
item_hash['sale_price'] = sale_price.text.strip.gsub!(/[A-Za-z$]/, '').to_f

но получается 1, как правильно?
источник

BO

Boris O in Чат по руби
sinecuraweb corp.
подскажите, ребята

есть такой дом
<span class="c-red medium-font bold on-sale" data-auto="sale-price">
                       Sale RUB 1,288.49
                   <span class="  c-legal c-no-bold percent-off" data-auto="percent-off">(56% off)</span>
   </span>

мне надо получить цифру 1,288.49

делаю так
item_hash['sale_price'] = sale_price.text.strip.gsub!(/[A-Za-z$]/, '').to_f

но получается 1, как правильно?
Еще бы запятую убрать. В той же регулярке
источник

Д

Денис in Чат по руби
sinecuraweb corp.
подскажите, ребята

есть такой дом
<span class="c-red medium-font bold on-sale" data-auto="sale-price">
                       Sale RUB 1,288.49
                   <span class="  c-legal c-no-bold percent-off" data-auto="percent-off">(56% off)</span>
   </span>

мне надо получить цифру 1,288.49

делаю так
item_hash['sale_price'] = sale_price.text.strip.gsub!(/[A-Za-z$]/, '').to_f

но получается 1, как правильно?
[A-Za-z$\,]
источник

s

sinecuraweb corp. in Чат по руби
Денис
[A-Za-z$\,]
спасибо!
источник

mB

mr Bubble in Чат по руби
Vsevolod Avramov
Да. Это без разницы. Если хочешь почувствовать разницу, нужно использовать бд с данными, приближенными к production. Ну и уйти от большинства N+1 и задеплоить разом.
Спасибо за советы! Посидел немного вчера, сходу уменьшил время загрузки страниц вдвое, уже неплохо, потом посижу еще пооптимизирую, будет вообще отлично.
источник

В

Владимир in Чат по руби
Привет. Может кто знает впс за 150-200 руб где, что бы руби накатить.
источник

В

Владимир in Чат по руби
И опенвпн подскажите рабочий бесплатный, или прям совсем дешёвый
источник

IL

Igor Lukashin in Чат по руби
Vpn99
источник