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

КОМЕНТАРІ • 91

  • @IlyaBodrovKrukowski
    @IlyaBodrovKrukowski  2 роки тому +4

    !!!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
      @user-rt1xi8ud4x Рік тому

      у меня данная инструкция не сработала

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  Рік тому

      @@user-rt1xi8ud4x Если интересует turbo, лучше смотреть другой плейлист по hotwire, он тоже есть на канале, там более свежая информация

  • @Tuman_7607
    @Tuman_7607 3 місяці тому +1

    Ruby on Rails волшебство

  • @rickbacker1
    @rickbacker1 Рік тому +5

    Спасибо Вам огромное за обновленный урок! Было интересно!

  • @Cyberdforest
    @Cyberdforest 2 роки тому +5

    наконец-то понятно как настраивать рейлс 7!! огромное спс автору

  • @ildarmurtazin9063
    @ildarmurtazin9063 2 роки тому +6

    ждем от вас видео с тестированием)

  • @arcanamace522
    @arcanamace522 2 роки тому +4

    огромная благодарность автору)

  • @freeman5774
    @freeman5774 Рік тому +1

    Благо дарю Вам, Илья! Установил все компоненты, согласно Вашему уроку! Всё работает!

  • @LunST
    @LunST 2 роки тому +5

    Спасибо вам !

  • @xaogao
    @xaogao 2 роки тому +3

    Спасибо за видео

  • @midda7
    @midda7 2 роки тому +1

    лайк не глядя)!

  • @ildarmurtazin9063
    @ildarmurtazin9063 2 роки тому +3

    Курс топ!

  • @user-mw5xe5ub9s
    @user-mw5xe5ub9s Рік тому +1

    Спасибо

  • @vladimirm4617
    @vladimirm4617 2 роки тому +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 роки тому +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 Спасибо!

  • @laranto_85
    @laranto_85 2 роки тому +3

    Обязателен ли render в def index, вроде как и без него контроллер ссылается на соотв view?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 роки тому +2

      Нет-нет, я же прямо в видео это упоминаю. Render был сначала просто для примера добавлен, но потом мы его убираем

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  Рік тому +1

      @@user-uh5kr8np6j Да, это правда. Но я предпочитаю оставлять, что было визуально понятно, что там за действия обрабатываются

  • @montecristo31
    @montecristo31 2 роки тому +1

    Здравствуйте, когда будет продолжение уроков по руби на вашем сайте. Я нашел только первый вводную статью.

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 роки тому +1

      На сайте? Боюсь, что не будет, не успеваю я ещё и статьи для блога писать... Есть мысль видео записать, но посмотрим

    • @montecristo31
      @montecristo31 2 роки тому +2

      @@IlyaBodrovKrukowski я могу приступать к изучению ROR, с базовыми знаниями в Ruby?
      Или стоит что конкретно доучить/изучить?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 роки тому +2

      @@montecristo31 Да, вполне. Потом можно на канале посмотреть плейлист "секреты классов ruby", там подробнее про всякие продвинутые штуки - если это проработать, то уже будет отлично

  • @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');
      }})();

  • @jem9528
    @jem9528 2 роки тому +1

    Не создаёт некоторые файлы и папки по типу dev и тд. При создании проекта TZInfo ошибки, что делать?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 роки тому +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 роки тому +1

    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 роки тому

    вот установка 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
    тут видно что то не хватает из файлов

  • @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 не правильно установил или у меня две версий руби?

  • @rodgerrabbit9950
    @rodgerrabbit9950 2 роки тому

    C:\Users\Uset>sqlite3 --version
    "sqlite3" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    1.path - проверил
    2. В папку bin файлы закинул
    Всё ровно команду не распознает.

  • @dastanabeuov4394
    @dastanabeuov4394 Рік тому +1

    Эххх когда же будет уже один инструмент отвечающий за ассеты(js/css)

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  Рік тому

      Боюсь, не очень скоро, но вроде importamp грозится стать крутым

  • @kvt5002
    @kvt5002 Рік тому

    38:59 что за "переменные образца класса"?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  Рік тому

      Instance variables, это те, которые с собакой в начале www.geeksforgeeks.org/instance-variables-in-ruby/

    • @kvt5002
      @kvt5002 Рік тому

      @@IlyaBodrovKrukowski это "Переменная экземпляра"

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  Рік тому

      @@kvt5002 Это одно и то же

  • @user-lb5uj7wt2g
    @user-lb5uj7wt2g 2 роки тому +2

    rails установлен и все остальное по видео.

  • @Samintius1663
    @Samintius1663 2 роки тому

    что делать ???

  • @codeline9387
    @codeline9387 2 роки тому +2

    Сейчас набегут апологеты линукса.

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 роки тому +1

      Да это вряд ли, тем более, что я ведь не говорю: обязательно сидите на Винде. Можно любую ОС использовать, это вообще не принципиально. Просто установка на Винду сложнее, поэтому ей приходится уделять время

    • @codeline9387
      @codeline9387 2 роки тому

      ​@@IlyaBodrovKrukowski Это правильно, начинал работать с руби из под винды, даже свои туториалы снимал пару лет назад и не раз сталкивался с теми кто предлагал новичкам учить линукс вместо руби, так как на винде ничего не работает. Но из опыта могу сказать, что у руби на винде есть только один минус - отсутствие менеджера версий по типу rvm или rbenv.

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 роки тому

      @@codeline9387 Да, у меня тоже особо проблем не было :)

  • @RuslanGQ
    @RuslanGQ Рік тому +1

    А что так много народу просит через винду обучение выдавать?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  Рік тому

      Не знаю

    • @RuslanGQ
      @RuslanGQ Рік тому +1

      просто я искал и большинство просит на линуксе убунту показывать ...

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  Рік тому +1

      @@RuslanGQ Ну я вот ссылку скинул, там в целом всё описано. Но в целом не сильно важно, какая ОС

  • @montecristo31
    @montecristo31 2 роки тому +1

    Здравствуйте, никак не получается установить 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 роки тому +1

      @@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 роки тому +1

    К сожалению при создании нового проекта у меня не создался скилет приложения. Такие папки как: app; yarn; log ну и тому подобные папки не установились, в папке с проектом появилось только 7 файлов: .gitattributes; .gitignore; .ruby-version; config.ru; Gemfile; Rakefile; README.md
    Попробую заново все переустановить, но если можете - подскажите в чем проблема.
    И, да, заблаговременно спасибо за уроки, я только начал, но подача информации очень нравится.

    • @rodgerrabbit9950
      @rodgerrabbit9950 2 роки тому +1

      Переустановил всё заново, к сожалению проблема осталась не решена. =(
      Пойду отдохну, и позже постараюсь заново.

    • @user-ze9xk5ez7v
      @user-ze9xk5ez7v Рік тому

      Тоже самое ...

    • @lukovkin8
      @lukovkin8 Рік тому +1

      Стартаните wsl и вперёд. Чисто с винды всё время разные косяки. Всё ставим на wsl и всё отлично работает

    • @anparow4068
      @anparow4068 Рік тому

      у тебя гита нет. во время создания приложения rails new допиши --skip-git и будет полный пакет файлов. ну или гит нужен