Спасибо огромное, Илья! Я как-то тоже долго откладывал с Хотвайром и Стимулосом и очень рад, что есть такой годный контент. 2 года назад об этом было поменьше инфы. Кстати, район города, в котором я живу Крюков называется. Вроде и не значительно, а приятно, поэтому всегда с особым удовольствием смотрю ваши уроки.
@ВалерийПогребняк-ц1уАй бұрын
Кстати первая статья вашего авторства, которую я читал была про создания гема на руби. Много воды с тех пор утекло, но тогда она здорово помогла, и в принципе актуальна до сих пор.
@IlyaBodrovKrukowskiАй бұрын
@@ВалерийПогребняк-ц1у Спасибо за отзыв, рад, что вам понравились уроки Да, это наверное на сайте Lokalise статья - надо бы её, кстати обновить немного, хотя там многое остаётся по-прежнему
@Obrezkasada2 жыл бұрын
как всегда, в течение просмотра видео, поставить лайк хочется несколько раз!
@IlyaBodrovKrukowski2 жыл бұрын
@igorshkuryn238411 ай бұрын
Спасибо Илья за Ваш талант! на бесплатных видео все достпунее чем практически у всех за деньги
@IlyaBodrovKrukowski11 ай бұрын
На здоровье
@Александр-е9ь8ь2 ай бұрын
Краш курс просто супер!
@IlyaBodrovKrukowski2 ай бұрын
@rickbacker17 ай бұрын
Спасибо огромное за Ваш труд! Действительно, Stimulus очень оживляет приложения на монолитной Рельсе без применения всяких реактов и относительно легко и контроллируемо. Единственное, как мне показалось, про увеличении кодовой базы приложения, количество стимулус-контроллеров тоже возрастает и не всегда их можно перезаюзать. Также количество навешанных контроллеров и контроллер-экшнов на одной вьюхе может быть уже не нормальной. Мне, честно говоря, стимулус сразу не понравился по выше-описанным причинам, но потом, легкость его использования все-таки берет верх над минусами. Каждой технологии есть свое место. Как мне видится, для маленьких и средних приложений, стимулус-контроллеры - находка и классный инструмент.
@IlyaBodrovKrukowski7 ай бұрын
Думаю, так и есть. Это нишевая штука, но с rails отлично идёт
@Aluston17839 ай бұрын
Спасибо Илья за ваш труд! не перестаю пересматривать ваши видосы.
@IlyaBodrovKrukowski9 ай бұрын
Благодарю вас
@ledockol2 жыл бұрын
Как всегда мощный, концентрированный урок от Ильи! Очень много полезного материала. Браво Илья! Благодарю. Вставлю некоторые "непутёвые" заметки, может быть пригодятся.... 1) Для тех кто будет играться с кодом не на платформе windows: 1.1 В файлах bin/setup, bin/rails, bin/rake сменить #!/usr/bin/env ruby.exe на #!/usr/bin/env ruby 1.2 Возможно придется сделать исполняемыми, командой типа: chmod a+x bin/rails 2) Быструю установку из репо сделать можно так: bin/setup bin/rails db:seed 3) Для генерации стимулус контроллера есть более простой способ: bin/rails g stimulus имя_контроллера 4) Не совсем ясно, зачем для каждого изображения создается отдельный контроллер images? Контроллера в этом случае достаточно одного, назначив его родителю списка. При подключении он будет проходить forEach по списку потомков, присваивая им необходимые теги и обрабатывая события. 5) Для работы с бэкендом настоятельно рекомендую использовать встроенную в rails библиотеку '@rails/request.js'. Великолепно интегрируется, существенно сокращает код запросов. 6) Кроме указанных в видео способов взаимодействия между контроллерами, а это иногда очень необходимо, есть еще один (из внутреннего АПИ стиумулус-контроллера): connect() { this.element[this.identifier] = this) } После того как в целевом контроллере прописали эту конструкцию, мы можем вызвать любую функцию из этого контроллера, указав DOM элемент, затем через точку имя стимулус контроллера, а затем - также через точку - имя функции из этого контроллера. Звучит сложно, но на самом деле, все очень даже просто. PS Для контроллеров у которых название составное (мой_супер_controller.js) этот код будет выглядеть немного по-другому. Кстати, есть и еще один способ организации взаимодействия - испольвание глобального windows.
@ledockol2 жыл бұрын
Допустил ошибку. Правильно так: connect() { this.element[this.identifier] = this } Для сложный имен контроллера: connect() { this.element[ (str => { return str .split('--') .slice(-1)[0] .split(/[-_]/) .map(w => w.replace(/./, m => m.toUpperCase())) .join('') .replace(/^\w/, c => c.toLowerCase()) } )(this.identifier) ] = this } Вызов функции из контроллера будет выглядеть так: document.querySelector("#filters-price-section").priceSelect.fullPriceRangeReset() priceSelect - price_select_controller.js ('price-select'), а "fullPriceRangeReset()" - функция из него.
@IlyaBodrovKrukowski2 жыл бұрын
Спасибо, очень подробно и интересно :) Да, можно было сделать один контроллер, но хотелось показать, что можно один привязывать ко многим и они вроде как будут независимы. Но вообще всё по делу
@ledockol2 жыл бұрын
@@IlyaBodrovKrukowski Контроллер для каждого image действительно упрощает работу с target для каждого из них, но какой ценой? Мы плодим для каждого пользователя кучу одинаковых объектов: контроллеров и таргетов, да еще и с одинаковыми именами. В тоже время для решения задачи адресации таргетов можно использовать стандартный event.target или динамическую адресацию.
@IlyaBodrovKrukowski2 жыл бұрын
@@ledockol Это правда, я имею ввиду просто в целях демонстрации
@vinogradova822 жыл бұрын
Илья, ОГРОМНОЕ СПАСИБО за ваш труд! Отличные уроки всегда и этот в том числе! Очень подробно и понятно все как всегда. Здоровья вам!
@IlyaBodrovKrukowski2 жыл бұрын
благодарю!
@anparow40682 жыл бұрын
Супер! Спасибо за твоё творчество и помощь в обучении)
@IlyaBodrovKrukowski2 жыл бұрын
@null62162 жыл бұрын
Вот это спасибо! От всех рубистов!
@IlyaBodrovKrukowski2 жыл бұрын
@prdrsd63032 жыл бұрын
Насичений та цікавий урок, дякую!
@IlyaBodrovKrukowski2 жыл бұрын
@MajorPain2 жыл бұрын
Спасибо за ваш труд!
@galievrus2 жыл бұрын
Спасибо очень классный курс, продолжайте нам очень нравится!
@IlyaBodrovKrukowski2 жыл бұрын
@muradgadjiev35562 жыл бұрын
Илья спасибо большое!
@IlyaBodrovKrukowski2 жыл бұрын
@gkhdscjud2 жыл бұрын
Отличное видео, спасибо!
@IlyaBodrovKrukowski2 жыл бұрын
На здоровье
@dagrish49809 ай бұрын
Илья, очень вам признателен за ваш труд и выражаю большое уважение! Я всё откладывал освоение hotwire, и вот с вашей помощью получилось, наконец, окунуться в тему! Нет ли у вас в планах сделать цикл видео по strada и вообще тематику разработки для мобил на рельсе подсветить?
@IlyaBodrovKrukowski9 ай бұрын
Честно говоря, пока не особо, но посмотрим
@xaogao2 жыл бұрын
Большое спасибо за видео
@IlyaBodrovKrukowski2 жыл бұрын
@promax8662 жыл бұрын
Спасибо за уроки!
@IlyaBodrovKrukowski2 жыл бұрын
@stipeydikey65992 жыл бұрын
Спасибо большое за урок! Хотелось бы еще увидеть как создавать фильтры и сортировки в rails. Вещь часто распространенная, однако какого-то однозначного хорошего варианта написания кода для данных функций не видел. Кто-то пишет, что нужно все делать на фронтенде, а это значит js. Но если подумать, пичкать каждую запись кучей id для каждого поля - не лучшая идея. Кто-то говорит, что сразу запросы с бд, но это ведь, очевидно, нагрузка на бд, а значит так себе идея. К тому же фильтры и сортировки бывают по связанным полям, что сильно усложняет все эти процессы. Вот хотелось бы узнать как писать хороший код для данных функций веб-приложений на rails.
@SlazZy1989 Жыл бұрын
Спасибо за ролик, очень полезно )
@IlyaBodrovKrukowski Жыл бұрын
@leeeroy_jenkins2 жыл бұрын
похоже неплохая альтернатива vue 👍
@knowledgedose19562 жыл бұрын
круто, спасибо. чем-то похоже на htmx, по крайней мере принцип
@observerone2 жыл бұрын
Очень круто
@vladimirgritskevich29972 жыл бұрын
Спасибо, вам огромное
@IlyaBodrovKrukowski2 жыл бұрын
@alexeybelozerov42972 жыл бұрын
Спасибо!
@ВладиславДмитров-т5т2 жыл бұрын
Лучший контент
@IlyaBodrovKrukowski2 жыл бұрын
Благодарю!
@ОлексійГнідко-ь2у2 жыл бұрын
Спасибо за учебный материал! Но стоило бы упомянуть, что содержимое файла "package.json" надо дополнить из выхлопа консоли (причем в двух местах)... это не очевидно -- чуть мозгом не тронулся... ))
@ОлексійГнідко-ь2у2 жыл бұрын
И "@hotwired/turbo-rails" тоже автоматом в этот файл не прописывается (( Обратите внимание кто будет идти по видео! )
@IlyaBodrovKrukowski2 жыл бұрын
@@ОлексійГнідко-ь2у На здоровье! Вообще, это странно. Если просто создать новое приложение rails 7, он должен дописать туда и turbo тоже, если только вы явно не указали, что turbo не нужен. Если это не так, то звучит, как баг
@remotronic2 жыл бұрын
👍
@yaroshchenko_creative2 жыл бұрын
здравствуйте, сделайте пожалуйста ролик с работой и редактированием pdf, через json или какой либо другой способ. Может ли Ruby работать с таким сложным форматом как pdf или нужна библиотtка или Gem написанный на С и С++? Есть ли способ работать на чистом РУБИ или только Rails? Спасибо за контент и ответ.
@IlyaBodrovKrukowski2 жыл бұрын
Редактировать никогда не пробовал. Генерировать pdf - ради бога, это реально
@VladimirLozitskiy Жыл бұрын
Урок для опытных разработчиков, новички отдыхают
@IlyaBodrovKrukowski Жыл бұрын
Да, это правда, тут есть относительно сложные вещи. Для новичков есть плейлист просто о rails, без stimulus kzbin.info/www/bejne/qqK2nHWjhKl7eM0
@ddd22832 жыл бұрын
ДАВАЙ ЕЩО!
@IlyaBodrovKrukowski2 жыл бұрын
Стараюсь :)
@Тёмочка-ь7о4 ай бұрын
Илья, добрый день! Подскажите как часто вообще видели Stiimulus Hotwire на бизнес проектах? Мне кажется сейчас везде RoR back + React Front
@IlyaBodrovKrukowski4 ай бұрын
Не особенно часто, скажем так
@404alex_eu Жыл бұрын
Видео шикарное, возможно кто то сталкивался с такой проблемой что stimulus controller обновляеться только после команды rake assets:precompile? Или это стандартное поведение, в браузерной консоли ошибок нету, логи тоже не выдают никакие ошибки, спасибо!
@IlyaBodrovKrukowski Жыл бұрын
В development такого быть не должно. В production - дело другое
@404alex_eu Жыл бұрын
@@IlyaBodrovKrukowski нашел проблему, неправильно сервак стартовал, делал через привычное rails s, а надо было bin/dev или как у Вас, а ларчик просто открывался))))))
@IlyaBodrovKrukowski Жыл бұрын
@@404alex_eu А, да, это важно, иначе не подрубится hot reload
@ВалерийПогребняк-ц1уАй бұрын
@@404alex_eu Если я правильно понимаю, когда стартуешь через rails s, то чтобы в дев режиме на лету компайлилось, то нужно в отдельной вкладке терминала запускать yarn build --watch и yarn build:css --watch Поправьте, если ошибаюсь
@ddd22832 жыл бұрын
Один вопрос , а чего не importmap ((( ну как так то
@IlyaBodrovKrukowski2 жыл бұрын
Мне он кажется сыроватым ещё, если честно
@ddd22832 жыл бұрын
@@IlyaBodrovKrukowski , а я вот третий час плачу! Давай прейскурант публикуй на частные уроки!
@IlyaBodrovKrukowski2 жыл бұрын
@@ddd2283 Сейчас не провожу уроки, увы. Но потом будет и про importmap, просто через какое-то время
@ddd22832 жыл бұрын
@@IlyaBodrovKrukowski Ну, я конечно поплачу и разберусь в итоге, но если частная практика будет возможна или даже в составе групп , я бы поддержал это!
@IlyaBodrovKrukowski2 жыл бұрын
@@ddd2283
@anatolyvatson25422 жыл бұрын
По итальянки страда это дорога
@IlyaBodrovKrukowski2 жыл бұрын
а вот у нас как-то иначе. Помните, были ещё стихи такие: "В полном разгаре страда деревенская?". Вот оно отсюда
@anatolyvatson25422 жыл бұрын
@@IlyaBodrovKrukowski очень много слов транзитировали с латыни в русский, я после того как изучил итальянский очень удивился