@rubylang

Страница 1053 из 1684
Vasiliy
09.06.2017
11:10:33
Ты не слышно про vanilla js?
а ты видимо недавно услышал?

Ракета
09.06.2017
11:11:06
А ты видимо серьёзный парень сильно?))

Vasiliy
09.06.2017
11:13:43
нет

Igor
09.06.2017
11:13:52
ага
спасибо

Google
Vasiliy
09.06.2017
11:14:11
поцоны, а кто CarrierWave юзает - как ускоряете тесты?

Андрей
09.06.2017
11:27:22
Юзай мелкие файлы для тестов

Глеб
09.06.2017
11:27:33
хей ребзя , как оптимизировать это дерьмецо ProductDatum.includes(:product_product_sizes).where(:product_product_sizes=>{:has => true} )

Глеб
09.06.2017
11:28:19
время ответа SQL (969.9ms) SELECT "product_data"."id" AS t0_r0, "product_data"."article" AS t0_r1, "product_data"."color_id" AS t0_r2, "product_data"."product_id" AS t0_r3, "product_data"."created_at" AS t0_r4, "product_data"."updated_at" AS t0_r5, "product_data"."price" AS t0_r6, "product_data"."about" AS t0_r7, "product_data"."promotional_price" AS t0_r8, "product_data"."more" AS t0_r9, "product_product_sizes"."id" AS t1_r0, "product_product_sizes"."has" AS t1_r1, "product_product_sizes"."product_datum_id" AS t1_r2, "product_product_sizes"."product_size_id" AS t1_r3, "product_product_sizes"."size" AS t1_r4, "product_product_sizes"."update_at" AS t1_r5 FROM "product_data" LEFT OUTER JOIN "product_product_sizes" ON "product_product_sizes"."product_datum_id" = "product_data"."id" WHERE "product_product_sizes"."has" = $1

w3tra
09.06.2017
11:28:58
Сколько записей в базе?

Sergey
09.06.2017
11:29:18
E X P L A I N X P L A I N

Глеб
09.06.2017
11:29:41
Пока немножко (3.1ms) SELECT COUNT(*) FROM "product_data" => 9411

Vasiliy
09.06.2017
11:30:06
Юзай мелкие файлы для тестов
уже, я думаю заюзать такое sequence(:image) do |n| { tempfile: StringIO.new, filename: "#{n}.jpeg", content_type: 'image/jpeg' } end а как нить сохранение на диске вырубить можно?

w3tra
09.06.2017
11:30:14
Хм, тогда действительно долго

Vasiliy
09.06.2017
11:31:03
индексы

Google
Глеб
09.06.2017
11:33:08
просто так то там генерить join и один where , хз чё делать

Vasiliy
09.06.2017
11:33:08
allow(File).to receive(:open) и т.д.
ты так делаешь или просто показываешь возможность?

Sergey
09.06.2017
11:34:33
Делаю, но не для для кариервейва

Глеб
09.06.2017
11:38:43
@droptheplot от каманды что я ввожу , sql код

ojab
09.06.2017
13:11:34
но вообще explain`/`explain analyze и индексы, да

Глеб
09.06.2017
13:12:57
ojab индексы ничего не дали сейчас завис на такой вариации ProductDatum.joins(:product_product_sizes).where(:product_product_sizes => {:has => true} ) даёт 500 ms что всёравно долго

ojab
09.06.2017
13:17:01
.includes в этом случае работает абсолютно так же, как и .joins

хеши с символами-ключами лучше писать как key: value, а не :key => value

ну и "индексы ничего не дали" ни о чём не говорит. При такой скорости на таблице в 10к строк вариантов немного: или это запускается на 486, или в таблице product_product_sizes очень много строк, или индексы были поставлены как-то не так/куда-то не туда

или данные в таблице очень большие и результат долго отдаётся, ещё как вариант

Глеб
09.06.2017
13:23:12
ojab нууу как оказалось связей тех размеров вооще 50 К ... так что всё ввесело

ojab
09.06.2017
13:24:09
50к от 10к в данном случае не отличается, всё равно мало строк для такой скорости

Sergey
09.06.2017
13:24:30
Да блять, покажи explain, что тебе весело то

Глеб
09.06.2017
13:25:14
@droptheplot я не совсем понимаю о чём ты

ojab
09.06.2017
13:25:41
google://sql+explain

базовая вещь в дебаге производительности запросов

Глеб
09.06.2017
13:28:25
Это имелось в виду? ProductDatum.joins(:product_product_sizes).where(:product_product_sizes => {:has => true} ).explain ProductDatum Load (475.2ms) SELECT "product_data".* FROM "product_data" INNER JOIN "product_product_sizes" ON "product_product_sizes"."product_datum_id" = "product_data"."id" WHERE "product_product_sizes"."has" = $1 [["has", true]] => EXPLAIN for: SELECT "product_data".* FROM "product_data" INNER JOIN "product_product_sizes" ON "product_product_sizes"."product_datum_id" = "product_data"."id" WHERE "product_product_sizes"."has" = $1 [["has", nil]] QUERY PLAN --------------------------------------------------------------------------------------- Hash Join (cost=1455.40..3894.76 rows=38674 width=1024) Hash Cond: (product_data.id = product_product_sizes.product_datum_id) -> Seq Scan on product_data (cost=0.00..1445.27 rows=9527 width=1024) -> Hash (cost=971.98..971.98 rows=38674 width=4) -> Seq Scan on product_product_sizes (cost=0.00..971.98 rows=38674 width=4) Filter: has (6 rows)

Google
w3tra
09.06.2017
13:28:52
И все-таки база локально тестится?

Глеб
09.06.2017
13:30:05
@w3tra в идеале локально бы , но у меня сейчас на продакшене на сервере

w3tra
09.06.2017
13:30:32
но запрос выполняется на той же машине что и база?

Глеб
09.06.2017
13:30:52
@w3tra ну да

ojab
09.06.2017
13:31:55
судя по seq scan нужных индексов всё-таки нет

или они не используются

Sergey
09.06.2017
13:33:37
Индекс на product_datum_id

ojab
09.06.2017
13:33:55
для начала на has

и потом на product_data.id

product_datum_id в поиске не используется

Глеб
09.06.2017
13:35:33
ojab add_index :product_product_sizes, :has Что я напутал в миграции тогда раз их нет?

ojab
09.06.2017
13:35:41
ну и из консоли сделать запросу explain analyze, потому что постгрес может не использовать индексы какое-то после создания (ибо оптимизатор запросов о них ещё не знает)

ojab
09.06.2017
13:36:11
ojab add_index :product_product_sizes, :has Что я напутал в миграции тогда раз их нет?
рекомендую почитать документацию к постгресу и посмотреть что в БД

Karina
09.06.2017
18:21:35
ребят, а как написать такой гем, который вызывался бы так: 'many of data' script parameter 'many of data' - это дофигище текста. script - руби скрипт. А parameter - это stream output (это я умею). Вот я не пойму как 'many of data' прицепить

Vasiliy
09.06.2017
18:24:47
ты порядок не путаешь?

Dima
09.06.2017
18:26:14
Эм

Karina
09.06.2017
18:34:39
дословно так должно быть: cat file | script parameter

Vasiliy
09.06.2017
18:39:22
pipe linux гугли

оно вроде как 1ый аргумент доступно

Google
ojab
09.06.2017
18:42:51
stdin же

Karina
09.06.2017
18:45:28
stdin же
да, спасибо, это оно

Lavrushchik
10.06.2017
08:31:04
вопрос. есть микроблог, сделанный по тутору railsrus. нужно добавить пагинацию для комментариев под постом. сама пагинация постов работает. не хватает знаний реализовать пагинацию для комментариев. пагинацию реализовать через kaminari. есть решения как это реализовать?

Admin
ERROR: S client not available

Andrey ?
10.06.2017
10:34:20
Можно как-нибудь в form_for задать контроллер, но не задать экшен?

Чтобы одну и ту же форму использовать и для редактирования и для создания

Ибо имя модели отличается от имени контроллера

Shamil
10.06.2017
10:37:39
Чтобы одну и ту же форму использовать и для редактирования и для создания
Если у вас стандартно все устроенно. То можете генерировать путь из ключевых слов. Погуглите команда send.

Andrey ?
10.06.2017
10:42:08
Не совсем понимаю, с какого боку тут прикручивать send =\

Есть модель и есть два ресурса, оба они работают с этой самой моделью, и надо каким-то образом сказать form_for, что на самом деле надо не на /one и /one/1 слать посты и апдейты, а на /two и /two/1, но при этом, желательно бы не городить разные формы для new и edit

Igor
10.06.2017
12:29:45
Есть одна тян^Wмодель....

Hard
10.06.2017
20:39:25
Люди подскажите как правильно в моем случае пишется limit User.where.limit(5)(reffered_by: 0, level: current_user.level - 1).all_except(current_user)

ojab
10.06.2017
20:42:35
зависит от того что ты хочешь получить

но вообще положение .limit на результат не влияет

Hard
10.06.2017
20:43:44
Мне надо найти юзеров по заданным параметрам но найти только определенное количество вот я задал ему лимит 5

Но этот вариант не рабочий

Глеб
10.06.2017
20:44:56
@hardneal ибо намутил с синтаксисом попробуй так User.where(reffered_by: 0, level: current_user.level - 1).all_except(current_user).limit(5)

Google
ojab
10.06.2017
20:44:58
потому что ты делаешь непонятное .limit()()

Hard
10.06.2017
20:47:38
Ща попробую

помогло

Спасибо

Валера
10.06.2017
23:14:34


Не кто не сталкивался с этим?

Tony
11.06.2017
05:39:53
Ребята, помогите кто может. Делаю диплом на RoR, в комиссии сидит чувак, фанат PHP/laravel. И мне ему нужно четко аргументировать, почему я выбрал именно рельсы. Он спец, с ним тяжко спорить. Говорит php 7.1 быстрый, могучий и все такое. И laravel форева. Буду очень благодарен. Доводы про синтаксис не прокатят..

Dima
11.06.2017
05:47:13
Банально язык удобный

Знаешь его лучше чем ринэрэ

За более короткое время смог сделать прототип

Andrey
11.06.2017
05:50:09
Ребята, помогите кто может. Делаю диплом на RoR, в комиссии сидит чувак, фанат PHP/laravel. И мне ему нужно четко аргументировать, почему я выбрал именно рельсы. Он спец, с ним тяжко спорить. Говорит php 7.1 быстрый, могучий и все такое. И laravel форева. Буду очень благодарен. Доводы про синтаксис не прокатят..
я могу лишь своим небольшим опытом поделиться. на руби очень низкий порог входа. В том же маке открываешь редактор, пишешь код и выполняешь его все. Нужна библиотека - тянешь с репозитория либо пишешь свою и собираешь в исполняемый гем. На php может быть тоже есть свои репы. Но не думаю что там просто можно сделать какую-нидь консольную прогу. Я в свое время качал сборку денвера, ковырял этот апач, непонятные настройки делал чтобы потом в специальной папке создать index.php и запустить его через браузер ;)

Dima
11.06.2017
05:50:47
Быстрый старт)

Но вообще в пыхе тоже сейчас быстро ибо там есть встроенный вебсервер

Andrey
11.06.2017
05:51:17
Возможности в языках сейчас примерно одинаковые. (руби-php), но то что в руби есть алиасы (разные имена методов с одной реализацией) упрощают разработку. )

Dima
11.06.2017
05:51:33
Нужно поставить пхп, композер, ларавел и все

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