Ruby on Rails 7, урок #1 (обновлённый) | Подготовка среды и создание приложения

  Рет қаралды 7,956

Ilya Krukowski

Ilya Krukowski

Күн бұрын

Уроки по Ruby on Rails 7 - популярному web-фреймворку. Сегодня мы поговорим о том, как установить весь необходимый софт, настроить рабочую среду, и создать несложное приложение Rails.
Таймкоды:
00:00 Введение
00:40 Зачем потребовалось записывать обновлённый урок?
01:50 Несколько слов о фреймворке Ruby on Rails
03:00 Установка интерпретатора Ruby
03:45 Ruby version manager (RVM)
04:35 Установка Ruby на Windows
06:06 Установка SQLite 3
06:50 Добавление переменных среды на Windows
08:10 Установка NodeJS и небольшая ремарка о node-gyp
10:30 Установка Yarn и проверка
11:37 Обновление подсистемы RubyGems
12:30 Установка Ruby on Rails
13:00 Создание нового приложения Ruby on Rails и опции при создании
17:15 Возможные ошибки при установке
19:37 Запуск приложения Ruby on Rails на разных ОС
23:15 Обзор директорий и файлов в приложении Ruby on Rails
29:45 Создание корневого маршрута и контроллера
34:00 Создание представления
35:47 Базовая страница (layout)
38:00 Обработка параметра HTTP GET и приветствие пользователя на странице
39:15 Ремарка о yarn upgrade
41:00 Заключение и последние ремарки
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам: / @ilyabodrovkrukowski
Аккаунт Ethereum (ETH): 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16
Boosty: boosty.to/bodrovis
Patreon: / bodrovis
DonationAlerts: www.donationalerts.com/r/bodr...
Предыдущая версия этого урока (Rails 6): • Ruby on Rails 6/7, уро...
Исходный код: github.com/bodrovis-learning/...
Начало работы с Ruby on Rails: guides.rubyonrails.org/gettin...
Установка Ruby: www.ruby-lang.org/en/document...
NodeJS: nodejs.org/en/
Node-gyp: github.com/nodejs/node-gyp
RVM: rvm.io/
Установка Ruby/Rails на Ubuntu: www.digitalocean.com/communit...
Хороший гайд по установке Ruby/Rails на разные ОС: gorails.com/setup/ubuntu/21.04
Канал Telegram: t.me/dev_in_ruby_colors
Наш чат в Telegram: t.me/joinchat/MxYT6-01eeA1NTYy
Мой сайт: bodrovis.tech

Пікірлер: 91
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
!!!FAQ по курсу Rails находится тут bodrovis.tech/en/categories/ruby-rails/posts/faq-po-kursu-ruby-on-rails Если у вас что-то не работает, то не исключено, что ваш вопрос уже разобран в этом документе. Друзья, если вы хотите использовать более свежую технологию Turbo, а не UJS, то это тоже вполне возможно. См. вот этот плейлист со всей информацией по Turbo, Stimulus и прочему kzbin.info/www/bejne/jKa1YZ13iNpgjcU А вот эта статья также подробно описывает, какие изменения предстоит сделать в приложении dev.to/thomasvanholder/how-to-migrate-rails-ujs-to-hotwire-turbo-hdh (их всего несколько штук). Если вы решили задействовать Turbo, то тогда и в последующих уроках вам нужно будет писать, например, не method: :delete, data: {confirm: 'Are you sure?'} для link_to, а data: {turbo_method: :delete, turbo_confirm: 'Are you sure?'} Впрочем, как мне кажется, для начала изучения фреймворка это не столь важно: можно использовать UJS, а потом изучить Hotwire отдельно (про него тоже будет отдельный урок).
@user-rt1xi8ud4x
@user-rt1xi8ud4x Жыл бұрын
у меня данная инструкция не сработала
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@@user-rt1xi8ud4x Если интересует turbo, лучше смотреть другой плейлист по hotwire, он тоже есть на канале, там более свежая информация
@Tuman_7607
@Tuman_7607 3 ай бұрын
Ruby on Rails волшебство
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 3 ай бұрын
@rickbacker1
@rickbacker1 Жыл бұрын
Спасибо Вам огромное за обновленный урок! Было интересно!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@Cyberdforest
@Cyberdforest 2 жыл бұрын
наконец-то понятно как настраивать рейлс 7!! огромное спс автору
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
На здоровье!
@freeman5774
@freeman5774 Жыл бұрын
Благо дарю Вам, Илья! Установил все компоненты, согласно Вашему уроку! Всё работает!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@ildarmurtazin9063
@ildarmurtazin9063 2 жыл бұрын
ждем от вас видео с тестированием)
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Да уж, я тоже жду :))
@arcanamace522
@arcanamace522 2 жыл бұрын
огромная благодарность автору)
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
На здоровье!
@LunST
@LunST 2 жыл бұрын
Спасибо вам !
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
На здоровье!
@xaogao
@xaogao 2 жыл бұрын
Спасибо за видео
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
:D
@ildarmurtazin9063
@ildarmurtazin9063 2 жыл бұрын
Курс топ!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
:)
@midda7
@midda7 2 жыл бұрын
лайк не глядя)!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
;)
@user-mw5xe5ub9s
@user-mw5xe5ub9s Жыл бұрын
Спасибо
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@laranto_85
@laranto_85 2 жыл бұрын
Обязателен ли render в def index, вроде как и без него контроллер ссылается на соотв view?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Нет-нет, я же прямо в видео это упоминаю. Render был сначала просто для примера добавлен, но потом мы его убираем
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@@user-uh5kr8np6j Да, это правда. Но я предпочитаю оставлять, что было визуально понятно, что там за действия обрабатываются
@vladimirm4617
@vladimirm4617 2 жыл бұрын
Как всегда материал очень познавательно и доходчиво! Можете пояснить пару моментов: - На wsl установлено rails 6 и несколько приложений на них, как правильно создать приложение на rails 7, при этом иметь возможность запускать приложения на rails 6? - На wsl с помощью rvm установлены две версии ruby 2.7 и 3. При запуске приложения rails которое было написано изначально на 2.7 на версии 3 - в консоли выходит предупреждение - пример Warning: the running version of Bundler (2.2.3) is older than the version that created the lockfile (2.2.15) и т.д. Как избежать данной ошибки? И думаю многим было интересно узнать как правильно обновлять версию ruby в rails приложениях. - И еще один вопрос имеется rails приложение + Active Storage на локальном сервере. Подскажите как правильно настроить backup базы данных и файлов из Active Storage.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Да, хороший вопрос! 1. Если нужно создать приложение с конкретной версией, то пишем rails _6.1.4.4_ new AppName (причём номер версии должен быть обрамлён нижними подчёркиваниями, их просто YT съедает). Естественно, это версия должна стоять на компьютере уже. Потом сервак запускается либо bin/rails s либо bin/dev - в зависимости что за версия. Он тогда подцепит всё правильным образом 2. Если он ругается на bundler, то, во-первых, имеет смысл обновить rubygems командой gem update --system. а затем сделать bundle update - должно быть окей 3. Ну, бэкап БД обычно делается средствами СУБД, тут уже зависит от конкретного сетапа. Можно скрипт какой-то написать и использовать pg_dump (если postgres). Есть библиотека backup, но она не очень здорово уже поддерживается. Есть также whenever - он позволяет писать скрипты cron, которые как раз будут выполняться в заданные интервалы. Соответственно, в скрипте снимаем бэкап и грузим куда-нибудь - скажем, на S3. Про ActiveStorage точно не скажу, там могут быть особенности, но вот такая дискуссия есть stackoverflow.com/questions/53213741/backup-activestorage-images-in-postgresql-rails
@vladimirm4617
@vladimirm4617 2 жыл бұрын
@@IlyaBodrovKrukowski Спасибо!
@kirill_prog
@kirill_prog Жыл бұрын
Илья, подскажите пожалуйста, развернул проект командой rails new myproject --css tailwind -j esbuild -d postgresql Всё работает кроме автоматического обновления браузера. Приходится обновлять страничку вручную. Куда надо посмотреть чтобы это поправить?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
Так оно и не будет автоматом обновляться, такой встроенной фичи нет
@kirill_prog
@kirill_prog Жыл бұрын
@@IlyaBodrovKrukowski жаль, конечно. Webpack так вроде умеет?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@@kirill_prog По дефолту нет точно, но вероятно можно поискать решения
@rickbacker1
@rickbacker1 Жыл бұрын
(function(){ if(!sessionStorage.getItem('firstLoad')){ sessionStorage['firstLoad'] = true; window.location.reload(); }else{ sessionStorage.removeItem('firstLoad'); }})();
@montecristo31
@montecristo31 2 жыл бұрын
Здравствуйте, когда будет продолжение уроков по руби на вашем сайте. Я нашел только первый вводную статью.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
На сайте? Боюсь, что не будет, не успеваю я ещё и статьи для блога писать... Есть мысль видео записать, но посмотрим
@montecristo31
@montecristo31 2 жыл бұрын
@@IlyaBodrovKrukowski я могу приступать к изучению ROR, с базовыми знаниями в Ruby? Или стоит что конкретно доучить/изучить?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@montecristo31 Да, вполне. Потом можно на канале посмотреть плейлист "секреты классов ruby", там подробнее про всякие продвинутые штуки - если это проработать, то уже будет отлично
@jem9528
@jem9528 2 жыл бұрын
Не создаёт некоторые файлы и папки по типу dev и тд. При создании проекта TZInfo ошибки, что делать?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Написать в Gemfile просто gem 'tzinfo' без платформ и перезапустить все команды, которые не прошли. Это известный баг. Либо разрабатывать на nix-системах
@Samintius1663
@Samintius1663 2 жыл бұрын
привет я решил проблему одну но за ним другая проблема выходит ошибка при создание rails new вожу файл и потом enter затем выходит в середине установки ---> Системе не удается найти указанный путь.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Странно. Можно попробовать поспрашивать в нашем чате (ссылка в описании)
@KonstantinVasilevsky
@KonstantinVasilevsky Жыл бұрын
У меня не инсталлируется проект. После установки обновления yarn до версии 3.5.1, rails и команды "rails new AskIt -T -css bootstrap -j esbuild" я получаю ошибку: Usage Error: The nearest package directory (I:\RB\proj\AskIt) doesn't seem to be part of the project declared in I:\RB\proj. - If I:\RB\proj isn't intended to be a project, remove any yarn.lock and/or package.json file there. Видео с миграцией с webapp на esbuild посмотрел. Всё слишком сложно, куча файлов меняется, может лучше сделать видео сразу с созданием проекта с esbuild через команду rails new? Ну и неплохо бы разъяснить в непонятки с обновлением yarn с 1.22.19 на 3.5.1. Что имеется ввиду под следующей фразой: "Commit the changes so far (yarn-X.Y.Z.js, .yarnrc.yml, ...)" и в самом конце "Commit everything remaining". Что там за команды должны быть? Может все проблемы из-за них?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
так и это и есть создание проекта с нуля, с esbuild . Я не вижу особого смысла записывать что-то ещё, потому что там я точно так же покажу запуск этой же команды. Команда должна работать, там нет особо сложностей. Сложно было, когда нам приходилось использовать webpacker - вот там можно было полдня просидеть (я лично потратил почти целый день, чтобы всё настроить и потом урок про это сделать). Возможно, проблема в том, что в родительской для проекта директории лежат файлы yarn или package.json или директория node_modules Либо, судя по этому, Yarn не хватает для счастья каких-то файлов, их надо создать stackoverflow.com/questions/64048830/yarn-2-init-add-failing
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
Хотя всё-таки я думаю, что там лишние файлы просто имеются. Короче, если проект создаётся с нуля, то целевая директория должна быть пустой, а в родителе не должно быть файлов, связанных с package.json, yarn и прочим. Если это МИГРАЦИЯ, то история вообще другая, это другое видео смотреть надо. В этом уроке всё с нуля делается и в общем-то у большинства посмотревших проблем особо не было
@sergeibogomolov6179
@sergeibogomolov6179 2 жыл бұрын
Sqlite3 не устанавливается на вин10. Rubymine выдаёт ошибку при сборке приложения и gem installsqlite выдает ошибку . кто сталкивался как решается?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
А вы точно скачали нужные файлы с сайта sqlite?.. Ещё помогает установка нужного пакета через msys2 (можно найти во всех программах). Вот этот пакет надо поставить packages.msys2.org/package/mingw-w64-x86_64-sqlite3?repo=mingw64 там прямо команда на странице написана
@sergeibogomolov6179
@sergeibogomolov6179 2 жыл бұрын
@@IlyaBodrovKrukowski win 10, ruby от 2 до 3 версии. ошибки везде разные была проблема c https подключением к gem-мам. решил проблему скачав гемы и указав локальный путь, добавил сертивфикат в ручную. Много ошибок
@sergeibogomolov6179
@sergeibogomolov6179 2 жыл бұрын
Версии приложений и библиотек в gem-ах несовпадают с версией руби
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@sergeibogomolov6179 Это очень странно, у меня ничего подобного не было ни на одной винде
@sergeibogomolov6179
@sergeibogomolov6179 2 жыл бұрын
@@IlyaBodrovKrukowski Все впорядке если сделать все как указано точно в данном видео обзоре. все заработалою Проблема была из-за ранее установленной версии ruby 3.0. В результате в процессе установки gem файлов возникает путаница PATHn% - переменных сред и gem тянет версию руби 3 для проекта с руби 2.7. После удаления всех ранее установленных версий ruby никаких ошибок невозникало
@Samintius1663
@Samintius1663 2 жыл бұрын
у меня выхожит ощибка No such file or directory - git config init.defaultbranch (Errno::ENOENT) при установки Рельсо
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Странно. Через gem install rails делается? Или это в проекте уже? Можно попробовать удалить папку .git (она скрытая), если, конечно, уже в Git что-то не делалось. Можно также обновить сам Git, тк явно что-то с ним
@Samintius1663
@Samintius1663 2 жыл бұрын
теперь думаю что я сделала нет или node.js не правильно установил или у меня две версий руби?
@kvt5002
@kvt5002 Жыл бұрын
38:59 что за "переменные образца класса"?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
Instance variables, это те, которые с собакой в начале www.geeksforgeeks.org/instance-variables-in-ruby/
@kvt5002
@kvt5002 Жыл бұрын
@@IlyaBodrovKrukowski это "Переменная экземпляра"
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@@kvt5002 Это одно и то же
@Samintius1663
@Samintius1663 2 жыл бұрын
вот установка gem install rails C:\Users\Admin>gem install rails Successfully installed rails-7.0.0 Parsing documentation for rails-7.0.0 Done installing documentation for rails after 0 seconds 1 gem installed тут видно что то не хватает из файлов
@user-lb5uj7wt2g
@user-lb5uj7wt2g 2 жыл бұрын
rails установлен и все остальное по видео.
@rodgerrabbit9950
@rodgerrabbit9950 2 жыл бұрын
C:\Users\Uset>sqlite3 --version "sqlite3" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. 1.path - проверил 2. В папку bin файлы закинул Всё ровно команду не распознает.
@dastanabeuov4394
@dastanabeuov4394 Жыл бұрын
Эххх когда же будет уже один инструмент отвечающий за ассеты(js/css)
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
Боюсь, не очень скоро, но вроде importamp грозится стать крутым
@Samintius1663
@Samintius1663 2 жыл бұрын
что делать ???
@codeline9387
@codeline9387 2 жыл бұрын
Сейчас набегут апологеты линукса.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Да это вряд ли, тем более, что я ведь не говорю: обязательно сидите на Винде. Можно любую ОС использовать, это вообще не принципиально. Просто установка на Винду сложнее, поэтому ей приходится уделять время
@codeline9387
@codeline9387 2 жыл бұрын
​@@IlyaBodrovKrukowski Это правильно, начинал работать с руби из под винды, даже свои туториалы снимал пару лет назад и не раз сталкивался с теми кто предлагал новичкам учить линукс вместо руби, так как на винде ничего не работает. Но из опыта могу сказать, что у руби на винде есть только один минус - отсутствие менеджера версий по типу rvm или rbenv.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@codeline9387 Да, у меня тоже особо проблем не было :)
@RuslanGQ
@RuslanGQ Жыл бұрын
А что так много народу просит через винду обучение выдавать?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
Не знаю
@RuslanGQ
@RuslanGQ Жыл бұрын
просто я искал и большинство просит на линуксе убунту показывать ...
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@@RuslanGQ Ну я вот ссылку скинул, там в целом всё описано. Но в целом не сильно важно, какая ОС
@montecristo31
@montecristo31 2 жыл бұрын
Здравствуйте, никак не получается установить ruby. Я установил руби с репозитория, но там не было версии 3x. Поэтому я скачал rvm, но он почему то бесконечно скачивал, затем я скачал бинарник и засунул его в "~/.rbenv/versions/". В итоге я прописал rbenv global 3.1.0. Вроде все стало ок, но теперь когда я ввожу, например: ruby -v, то пишет: rbenv: ruby: command not found The `ruby' command exists in these Ruby versions: 2.5.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Так сказать сложно. Можете попробовать в нашем чате поспрашивать, тк я точно знаю, что кто-то недавно пробовал через rbenv делать
@montecristo31
@montecristo31 2 жыл бұрын
@@IlyaBodrovKrukowski Да, вроде разобрался. Щас устаналиваю Rails.
@user-eb8db4xq1p
@user-eb8db4xq1p 3 ай бұрын
На Debian установка нового проекта проходит не полностью: Any part of Rails can be skipped during app generation. Была у кого такая проблема?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 3 ай бұрын
Неясно, что это, но там написано CAN be skipped, а не WILL :)
@user-eb8db4xq1p
@user-eb8db4xq1p 3 ай бұрын
@@IlyaBodrovKrukowski да, могли... и смогли. Устанавливается всего 4 файла и сервер не запускается. Все установлено: ruby, node, yarn, rails, gem. Вот такой номер.
@rodgerrabbit9950
@rodgerrabbit9950 2 жыл бұрын
К сожалению при создании нового проекта у меня не создался скилет приложения. Такие папки как: app; yarn; log ну и тому подобные папки не установились, в папке с проектом появилось только 7 файлов: .gitattributes; .gitignore; .ruby-version; config.ru; Gemfile; Rakefile; README.md Попробую заново все переустановить, но если можете - подскажите в чем проблема. И, да, заблаговременно спасибо за уроки, я только начал, но подача информации очень нравится.
@rodgerrabbit9950
@rodgerrabbit9950 2 жыл бұрын
Переустановил всё заново, к сожалению проблема осталась не решена. =( Пойду отдохну, и позже постараюсь заново.
@user-ze9xk5ez7v
@user-ze9xk5ez7v Жыл бұрын
Тоже самое ...
@lukovkin8
@lukovkin8 Жыл бұрын
Стартаните wsl и вперёд. Чисто с винды всё время разные косяки. Всё ставим на wsl и всё отлично работает
@anparow4068
@anparow4068 Жыл бұрын
у тебя гита нет. во время создания приложения rails new допиши --skip-git и будет полный пакет файлов. ну или гит нужен
ДЕНЬ РОЖДЕНИЯ БАБУШКИ #shorts
00:19
Паша Осадчий
Рет қаралды 4,5 МЛН
Do you have a friend like this? 🤣#shorts
00:12
dednahype
Рет қаралды 44 МЛН
Как быстро замутить ЭлектроСамокат
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 9 МЛН
格斗裁判暴力执法!#fighting #shorts
00:15
武林之巅
Рет қаралды 87 МЛН
Install Ruby 3.3 & Rails 7.1 on MacOS (2024)
10:58
SwiftRuby
Рет қаралды 1,8 М.
Уроки Ruby on Rails - 7. Аутентификация, cookies, session 🛤️
1:11:24
Хороший программист
Рет қаралды 8 М.
ДЕНЬ РОЖДЕНИЯ БАБУШКИ #shorts
00:19
Паша Осадчий
Рет қаралды 4,5 МЛН