Ruby on Rails 7, урок #1 (обновлённый) | Подготовка среды и создание приложения
Вставка
- Опубліковано 2 чер 2024
- Уроки по 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
!!!FAQ по курсу Rails находится тут bodrovis.tech/en/categories/ruby-rails/posts/faq-po-kursu-ruby-on-rails Если у вас что-то не работает, то не исключено, что ваш вопрос уже разобран в этом документе.
Друзья, если вы хотите использовать более свежую технологию Turbo, а не UJS, то это тоже вполне возможно. См. вот этот плейлист со всей информацией по Turbo, Stimulus и прочему ua-cam.com/video/VuR0jASu-Wc/v-deo.html
А вот эта статья также подробно описывает, какие изменения предстоит сделать в приложении 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 Если интересует turbo, лучше смотреть другой плейлист по hotwire, он тоже есть на канале, там более свежая информация
Ruby on Rails волшебство
Спасибо Вам огромное за обновленный урок! Было интересно!
наконец-то понятно как настраивать рейлс 7!! огромное спс автору
На здоровье!
ждем от вас видео с тестированием)
Да уж, я тоже жду :))
огромная благодарность автору)
На здоровье!
Благо дарю Вам, Илья! Установил все компоненты, согласно Вашему уроку! Всё работает!
Спасибо вам !
На здоровье!
Спасибо за видео
:D
лайк не глядя)!
;)
Курс топ!
:)
Спасибо
Как всегда материал очень познавательно и доходчиво!
Можете пояснить пару моментов:
- На 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.
Да, хороший вопрос!
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
@@IlyaBodrovKrukowski Спасибо!
Обязателен ли render в def index, вроде как и без него контроллер ссылается на соотв view?
Нет-нет, я же прямо в видео это упоминаю. Render был сначала просто для примера добавлен, но потом мы его убираем
@@user-uh5kr8np6j Да, это правда. Но я предпочитаю оставлять, что было визуально понятно, что там за действия обрабатываются
Здравствуйте, когда будет продолжение уроков по руби на вашем сайте. Я нашел только первый вводную статью.
На сайте? Боюсь, что не будет, не успеваю я ещё и статьи для блога писать... Есть мысль видео записать, но посмотрим
@@IlyaBodrovKrukowski я могу приступать к изучению ROR, с базовыми знаниями в Ruby?
Или стоит что конкретно доучить/изучить?
@@montecristo31 Да, вполне. Потом можно на канале посмотреть плейлист "секреты классов ruby", там подробнее про всякие продвинутые штуки - если это проработать, то уже будет отлично
Илья, подскажите пожалуйста, развернул проект командой rails new myproject --css tailwind -j esbuild -d postgresql
Всё работает кроме автоматического обновления браузера. Приходится обновлять страничку вручную. Куда надо посмотреть чтобы это поправить?
Так оно и не будет автоматом обновляться, такой встроенной фичи нет
@@IlyaBodrovKrukowski жаль, конечно. Webpack так вроде умеет?
@@kirill_prog По дефолту нет точно, но вероятно можно поискать решения
(function(){
if(!sessionStorage.getItem('firstLoad')){
sessionStorage['firstLoad'] = true;
window.location.reload();
}else{
sessionStorage.removeItem('firstLoad');
}})();
Не создаёт некоторые файлы и папки по типу dev и тд. При создании проекта TZInfo ошибки, что делать?
Написать в Gemfile просто gem 'tzinfo' без платформ и перезапустить все команды, которые не прошли. Это известный баг. Либо разрабатывать на nix-системах
привет я решил проблему одну но за ним другая проблема выходит ошибка при создание rails new вожу файл и потом enter затем выходит в середине установки --->
Системе не удается найти указанный путь.
Странно. Можно попробовать поспрашивать в нашем чате (ссылка в описании)
У меня не инсталлируется проект. После установки обновления 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". Что там за команды должны быть? Может все проблемы из-за них?
так и это и есть создание проекта с нуля, с esbuild . Я не вижу особого смысла записывать что-то ещё, потому что там я точно так же покажу запуск этой же команды. Команда должна работать, там нет особо сложностей. Сложно было, когда нам приходилось использовать webpacker - вот там можно было полдня просидеть (я лично потратил почти целый день, чтобы всё настроить и потом урок про это сделать). Возможно, проблема в том, что в родительской для проекта директории лежат файлы yarn или package.json или директория node_modules Либо, судя по этому, Yarn не хватает для счастья каких-то файлов, их надо создать stackoverflow.com/questions/64048830/yarn-2-init-add-failing
Хотя всё-таки я думаю, что там лишние файлы просто имеются. Короче, если проект создаётся с нуля, то целевая директория должна быть пустой, а в родителе не должно быть файлов, связанных с package.json, yarn и прочим. Если это МИГРАЦИЯ, то история вообще другая, это другое видео смотреть надо. В этом уроке всё с нуля делается и в общем-то у большинства посмотревших проблем особо не было
Sqlite3 не устанавливается на вин10. Rubymine выдаёт ошибку при сборке приложения и gem installsqlite выдает ошибку . кто сталкивался как решается?
А вы точно скачали нужные файлы с сайта sqlite?.. Ещё помогает установка нужного пакета через msys2 (можно найти во всех программах). Вот этот пакет надо поставить packages.msys2.org/package/mingw-w64-x86_64-sqlite3?repo=mingw64 там прямо команда на странице написана
@@IlyaBodrovKrukowski win 10, ruby от 2 до 3 версии. ошибки везде разные была проблема c https подключением к gem-мам. решил проблему скачав гемы и указав локальный путь, добавил сертивфикат в ручную. Много ошибок
Версии приложений и библиотек в gem-ах несовпадают с версией руби
@@sergeibogomolov6179 Это очень странно, у меня ничего подобного не было ни на одной винде
@@IlyaBodrovKrukowski Все впорядке если сделать все как указано точно в данном видео обзоре. все заработалою Проблема была из-за ранее установленной версии ruby 3.0. В результате в процессе установки gem файлов возникает путаница PATHn% - переменных сред и gem тянет версию руби 3 для проекта с руби 2.7. После удаления всех ранее установленных версий ruby никаких ошибок невозникало
вот установка 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
тут видно что то не хватает из файлов
у меня выхожит ощибка No such file or directory - git config init.defaultbranch (Errno::ENOENT) при установки Рельсо
Странно. Через gem install rails делается? Или это в проекте уже? Можно попробовать удалить папку .git (она скрытая), если, конечно, уже в Git что-то не делалось. Можно также обновить сам Git, тк явно что-то с ним
теперь думаю что я сделала нет или node.js не правильно установил или у меня две версий руби?
C:\Users\Uset>sqlite3 --version
"sqlite3" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
1.path - проверил
2. В папку bin файлы закинул
Всё ровно команду не распознает.
Эххх когда же будет уже один инструмент отвечающий за ассеты(js/css)
Боюсь, не очень скоро, но вроде importamp грозится стать крутым
38:59 что за "переменные образца класса"?
Instance variables, это те, которые с собакой в начале www.geeksforgeeks.org/instance-variables-in-ruby/
@@IlyaBodrovKrukowski это "Переменная экземпляра"
@@kvt5002 Это одно и то же
rails установлен и все остальное по видео.
что делать ???
Сейчас набегут апологеты линукса.
Да это вряд ли, тем более, что я ведь не говорю: обязательно сидите на Винде. Можно любую ОС использовать, это вообще не принципиально. Просто установка на Винду сложнее, поэтому ей приходится уделять время
@@IlyaBodrovKrukowski Это правильно, начинал работать с руби из под винды, даже свои туториалы снимал пару лет назад и не раз сталкивался с теми кто предлагал новичкам учить линукс вместо руби, так как на винде ничего не работает. Но из опыта могу сказать, что у руби на винде есть только один минус - отсутствие менеджера версий по типу rvm или rbenv.
@@codeline9387 Да, у меня тоже особо проблем не было :)
А что так много народу просит через винду обучение выдавать?
Не знаю
просто я искал и большинство просит на линуксе убунту показывать ...
@@RuslanGQ Ну я вот ссылку скинул, там в целом всё описано. Но в целом не сильно важно, какая ОС
Здравствуйте, никак не получается установить 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.
Так сказать сложно. Можете попробовать в нашем чате поспрашивать, тк я точно знаю, что кто-то недавно пробовал через rbenv делать
@@IlyaBodrovKrukowski Да, вроде разобрался. Щас устаналиваю Rails.
На Debian установка нового проекта проходит не полностью: Any part of Rails can be skipped during app generation. Была у кого такая проблема?
Неясно, что это, но там написано CAN be skipped, а не WILL :)
@@IlyaBodrovKrukowski да, могли... и смогли. Устанавливается всего 4 файла и сервер не запускается. Все установлено: ruby, node, yarn, rails, gem. Вот такой номер.
К сожалению при создании нового проекта у меня не создался скилет приложения. Такие папки как: app; yarn; log ну и тому подобные папки не установились, в папке с проектом появилось только 7 файлов: .gitattributes; .gitignore; .ruby-version; config.ru; Gemfile; Rakefile; README.md
Попробую заново все переустановить, но если можете - подскажите в чем проблема.
И, да, заблаговременно спасибо за уроки, я только начал, но подача информации очень нравится.
Переустановил всё заново, к сожалению проблема осталась не решена. =(
Пойду отдохну, и позже постараюсь заново.
Тоже самое ...
Стартаните wsl и вперёд. Чисто с винды всё время разные косяки. Всё ставим на wsl и всё отлично работает
у тебя гита нет. во время создания приложения rails new допиши --skip-git и будет полный пакет файлов. ну или гит нужен