RoR (Ruby on Rails) - это кроссплатформенный фреймворк для веб-разработки с открытым исходным кодом, который предоставляет разработчикам структуру для их кода. Она помогает им создавать приложения и веб-сайты, абстрагируясь и упрощая повторяющиеся задачи, возникающие в процессе разработки. Он называется Ruby on Rails, потому что Rails написан на языке программирования Ruby, точно так же, как Symfony и Zend написаны на PHP, а Django - на Python. Rails предоставляет стандартные структуры для баз данных, веб-серверов и веб-страниц. Такие известные приложения, как Soundcloud, Github и Airbnb, основаны на Rails.
Ruby on Rails лицензирован под MIT и впервые был выпущен в декабре 2005 года. Все его репозитории доступны на Github, включая последний на сегодняшний день релиз.
В этом руководстве описывается пошаговый процесс установки и настройки Ruby on Rails со всеми необходимыми условиями. Позже мы объясним, как установить и настроить базу данных PostgreSQL, чтобы создать ваш первый проект Rails. В статье также рассказывается, как создать простой CRUD-интерфейс, сделав ваше приложение более интерактивным и полезным.
Для установки и настройки Ruby on Rails мы используем командную строку Ubuntu, Терминал. Вы можете получить доступ к приложению Терминал либо через системный Dash, либо с помощью сочетания клавиш Ctrl+Alt+T.
Установка Ruby on Rails
Для того чтобы установить Ruby on Rails, вам сначала необходимо установить и настроить в системе последние версии некоторых предварительных условий, таких как:
- RVM-Ruby Version Manager
- Ruby
- Nodejs-Javascript runtime
- Ruby Gems-Ruby Package Manager
В этом разделе мы сначала подготовим нашу систему, установив пошагово все эти компоненты, настроив их последние версии, а затем окончательно установим Ruby on Rails.
1. Установите Ruby Version Manager (RVM)
Менеджер версий Ruby помогает нам в управлении установкой Ruby и настройке нескольких версий Ruby на одной системе. Выполните следующие шаги, чтобы установить пакет RVM через скрипт программы установки:
Шаг1: Добавьте ключ RVM в вашу систему
Выполните следующую команду, чтобы добавить ключ RVM; этот ключ будет использоваться при установке стабильной версии RVM:
1 2 | gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \ 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |
Шаг2: Установка Curl
Мы будем устанавливать RVM через Curl. Поскольку он не поставляется по умолчанию с последними версиями Ubuntu, нам нужно будет установить его с помощью следующих команд sudo:
1 | sudo apt install curl |
Обратите внимание, что только авторизованные пользователи могут добавлять/удалять и настраивать программное обеспечение на Ubuntu.
Система предложит вам ввести Y/n для подтверждения установки. Пожалуйста, введите Y для продолжения, после чего Curl будет установлен в вашей системе.
Шаг 3: Установите RVM стабильной версии
Теперь выполните следующую команду, чтобы установить последнюю версию RVM.
1 | curl -sSL https://get.rvm.io | bash -s master --ruby |
Эта команда также автоматически установит все необходимые пакеты, необходимые для установки RVM.
Процесс займет некоторое время в зависимости от скорости вашего интернета, после чего RVM будет установлен на вашу систему.
Шаг 4: Настройка исходной папки RVM
Обратите внимание, что последние несколько строк вывода результатов установки RVM предлагают выполнить следующую команду:
1 | source /usr/local/rvm/scripts/rvm |
Это используется для установки исходной папки на ту, которая указана в выводе. Вам необходимо выполнить эту команду, чтобы начать использовать RVM.
При настройке источника вы можете получить следующий результат:
В этом случае выполните следующие команды в вашей системе:
1 2 3 | source ~/.rvm/scripts/rvm echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc source ~/.bashrc |
Теперь источник для RVM установлен. Вы можете проверить номер версии RVM, установленной в вашей системе, с помощью следующей команды:
1 | rvm --version |
Этот результат также гарантирует, что RVM действительно установлен в вашей системе.
Шаг 5: Установка дополнительных пакетов
Они необходимы для установки ruby, без них сборка, скорее всего, завершиться с ошибкой
1 2 3 | sudo apt install autoconf bison patch build-essential rustc libssl-dev libyaml-dev \ libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev \ libdb-dev uuid-dev openssl |
2. Настройка последней версии Ruby как системной по умолчанию
Когда вы устанавливаете RVM, последняя версия Ruby также устанавливается на вашу систему. Однако вам нужно настроить систему так, чтобы последняя версия Ruby использовалась по умолчанию. Для этого выполните следующие шаги:
Шаг1: Установка RVM последней стабильной версии
Сначала нам нужно обновить RVM в нашей системе до последней стабильной версии, доступной на сайте https://get.rvm.io.
Для этого выполните следующую команду:
1 | rvm get stable --autolibs=enable |
Шаг 2: Получение списка всех доступных версий Ruby
Следующая команда предоставит вам список всех версий Ruby, выпущенных на сегодняшний день:
1 | rvm list known |
В этом списке выберите последнюю доступную версию Ruby. Как видно из результата, Ruby 3.0.0 является последней доступной версией.
Шаг 3: Установите последнюю версию Ruby
Мы поставим версию Ruby 3, выполнив следующую команду rvm:
1 | rvm install ruby-3 |
Процесс может занять некоторое время в зависимости от скорости вашего интернета, после чего выбранная версия Ruby будет установлен в вашей системе.
Если в процессе получаем ошибку:
Ошибка текст выглядит следующим образом:
1 2 3 4 5 6 7 | make[2]: *** [Makefile:328: ossl_pkey_rsa.o] Error 1 make[2]: Leaving directory '/home/user/.rvm/src/ruby-3.0.0/ext/openssl' make[1]: *** [exts.mk:260: ext/openssl/all] Error 2 make[1]: *** Waiting for unfinished jobs.... checking ../.././parse.y and ../.././ext/ripper/eventids2.c installing default ripper libraries linking shared-object ripper.so |
То выполняем установку следующими командами
1 2 | rvm pkg install openssl rvm install ruby-3 --with-openssl-dir=$HOME/.rvm/usr |
Шаг4: Установите последнюю версию Ruby по умолчанию
Следующая команда rvm поможет вам установить последнюю установленную версию Ruby в качестве системной по умолчанию:
1 | rvm --default use ruby-3 |
Вы можете видеть, что теперь моя система будет использовать Ruby 3 в качестве версии Ruby по умолчанию.
Это также можно проверить, выполнив следующую команду version:
1 | ruby -v |
3. Установите Nodejs и компилятор gcc
Перед началом разработки Rails на Linux мы рекомендуем использовать Nodejs в качестве среды выполнения Javascript. Это необходимое условие для компиляции конвейера активов Ruby on Rails.
Шаг 1: Установите последнюю версию Nodejs
Используйте следующую команду для установки репозитория Nodesource в вашу систему:
1 | curl -sL https://deb.nodesource.com/setup_current.x | sudo -E bash - |
Теперь установите последнюю версию Nodejs с помощью следующей команды apt как sudo:
1 | sudo apt install -y nodejs |
Последняя доступная версия Nodejs будет установлена в вашей системе
Шаг 2: Установите компилятор gcc
Компилятор gcc - это еще одно необходимое условие, которое необходимо установить перед началом разработки Rails. Для его установки используйте следующую команду от имени sudo:
1 | sudo apt install gcc g++ make |
Шаг 3 . Настройте последнюю версию RubyGems как системную по умолчанию
Когда вы устанавливаете RVM, RubyGems также устанавливается на вашу систему. Однако нам нужно настроить нашу систему так, чтобы последняя версия RubyGems использовалась по умолчанию. Ruby Gems - это менеджер пакетов Ruby on Rails, который поставляется с инструментом командной строки gem.
Выполните следующую команду gem, чтобы обновить систему для использования последней версии:
1 | gem update --system |
Теперь, когда вы проверите номер версии с помощью следующей команды, вы увидите, что ваша система использует последнюю версию RubyGems в командной строке:
1 | gem -v |
5. Установите Ruby on Rails
Наконец, после установки всех необходимых условий, мы можем установить Ruby on Rails на нашу систему, выполнив следующие шаги:
Шаг 1: Поиск последней доступной версии
На сайте RubyGems представлены все версии Ruby on Rails на сегодняшний день, по следующей ссылке:
https://rubygems.org/gems/rails/versions
Выберите последнюю версию Ruby on Rails, которую вы хотите установить. На момент написания этой статьи последней доступной версией является 7.0.1.
Шаг2: Установите последнюю версию Ruby on Rails
Вы можете установить последнюю версию Ruby on Rails с помощью инструмента командной строки gem следующим образом:
1 | gem install rails -v 7.0.4 |
Процесс установки может занять некоторое время в зависимости от вашего интернет-соединения.
После завершения установки выполните следующую команду, чтобы просмотреть версию Rails, установленную в вашей системе.
1 | rails -v |
Эта команда также проверяет, что Ruby on Rails действительно установлен в вашей системе.
Разработка Rails
Ruby on Rails поддерживает множество баз данных, таких как SQLite, MySQL и PostgreSQL. В этом разделе мы расскажем, как начать разработку Rails с PostgreSQL. Это будет включать в себя:
- Установка базы данных PostgreSQL
- Конфигурирование PostgreSQL и создание ролей
- Ваше первое Rails-приложение
- Создание простого CRUD с базой данных PostgreSQL на Rails
1. Установка и настройка базы данных PostgreSQL
Шаг 1: Установите PostgreSQL
Используйте следующую команду apt как sudo для установки базы данных PostgreSQL и некоторых других необходимых пакетов:
1 | sudo apt-get install postgresql postgresql-contrib libpq-dev |
Шаг 2: Запустите и включите службу Postgresql
После установки PostgreSQL необходимо запустить службу postgresql с помощью следующей команды:
1 | sudo systemctl start postgresql |
Следующим шагом будет включение службы с помощью следующей команды:
1 | systemctl enable postgresql |
Шаг 3: Проверка установки
Для просмотра подробного отчета о состоянии установки PostgreSQL выполните следующую команду:
1 | dpkg --status postgresql |
2. Настройка PostgreSQL и создание ролей
Приложения PostgreSQL могут быть созданы по пользователям или ролям. По умолчанию существует пользователь "postgres", который является суперпользователем и может создавать и переносить базы данных, а также управлять другими ролями пользователей.
Первоначально вы можете войти в PostgreSQL под именем sudo, выполнив следующую команду:
1 | sudo -u postgres psql |
Здесь вы можете изменить пароль postgres следующим образом:
1 | postgress=# \password postgres |
Суперпользователь может создать новую роль пользователя с помощью следующей команды:
1 | create role "role_name" with createdb login password "'password'"' ; |
Пример:
1 | create role dev_rails with createdb login password 'Password123' ; |
Мы создаем роль с именем "dev_rails". Это пользователь, который будет создавать db для нашего первого Rails-приложения.
Суперпользователь может просмотреть список ролей, существующих в PostgreSQL, следующим образом:
1 | \du |
Используйте Ctrl+z для выхода из PostgreSQL.
3. Ваше первое Rails-приложение
Теперь мы создадим наше первое Rails-приложение с PostgreSQL в качестве базы данных по умолчанию. Это включает в себя следующие шаги:
Шаг 1: Создайте новое приложение
Создайте новый проект с именем "firstapp" или любым другим именем с помощью следующей команды и укажите PostgreSQL в качестве базы данных следующим образом:
1 | rails new firstapp -d postgresql --skip-git --webpack |
Это создаст папку проекта в вашей домашней папке следующим образом:
1 | ls |
Шаг 2: Настройте ваш проект Rails для включения роли пользователя PostgreSQL
Теперь мы хотим, чтобы роль пользователя, которую мы создали в PostgreSQL, могла создавать базу данных в приложении Rails. Для этого нам нужно отредактировать файл database.yml, расположенный в папке вашего только что созданного приложения в каталоге /config/.
Перейдите в ваше первое приложение, а затем в папку config следующим образом:
1 | cd firstapp/config/ |
Здесь вы увидите файл database.yml. Вы можете отредактировать этот файл через ваш любимый текстовый редактор. Мы будем делать это через редактор Nano, используя следующую команду:
1 | nano database.yml |
В этом файле вы сможете увидеть в основном три раздела:
- Разработка (development)
- Тестирование (test)
- Производство (production)
Нам нужно настроить секции Development и Test файла.
Выполните следующие настройки в секции Development
1 2 3 4 5 | database: firstapp_development username: dev_rails password: Password123 host: localhost port: 5432 |
И следующее в разделе Test:
1 2 3 4 5 | database: firstapp_development username: dev_rails password: Password123 host: localhost port: 5432 |
Пожалуйста, убедитесь в правильности синтаксиса. Перед каждой строкой должно быть 2 пробела и НЕ табуляция.
Сохраните файл, нажав Ctrl+X, затем Y и затем нажав Enter.
Шаг 3: Сгенерируйте, а затем перенесите базу данных
Сгенерируйте базу данных с помощью следующей команды rails:
1 | rails db:setup |
Убедитесь, что ошибок нет. Большинство ошибок связано с неправильным синтаксисом файла database.yml или несоответствием имени пользователя и пароля с теми, которые вы создали в PostgreSQL.
После успешной генерации выполните миграцию базы данных с помощью следующей команды rails:
1 | rails db:migrate |
Шаг4: Запуск веб-сервера Puma Rails
После завершения настройки приложения введите следующую команду, чтобы запустить веб-сервер Puma по умолчанию:
1 | rails s -b localhost -p 8080 |
Или в нашем случае,
1 | rails s -b 127.0.0.1 -p 8080 |
После этой команды ваше первое приложение Rails будет запущено на локальном хосте на порту 8080.
Шаг 5: Откройте домашнюю страницу проекта Rails по умолчанию
Вы можете увидеть, что ваша база данных успешно размещена на домашней странице проекта Rails по умолчанию, введя URL в одном из ваших веб-браузеров:
http://localhost:8080/
Теперь вы можете выполнять любые операции CRUD в этом простом приложении. Чтобы сделать ваше приложение более интерактивным, выполните еще несколько действий, описанных в статье.
4. Создание простого CRUD с базой данных PostgreSQL на Rails
Давайте сделаем наше приложение более интерактивным, реализовав интерфейс CRUD (Create, Read, Update, Delete).
Шаг 1: Создайте эшафот в Rails
Выполните следующую команду, чтобы создать эшафот в папке вашего приложения Rails
1 | rails g scaffold Post title:string body:text |
Затем мигрируйте базу данных, выполнив следующую команду:
1 | rake db:migrate |
Шаг 2: Запустите приложение на веб-сервере Puma Rails
Далее запустите приложение на localhost, снова запустив веб-сервер Puma с помощью следующей команды:
1 | rails s -b localhost -p 8080 |
Вы также можете использовать IP-адрес вашего локального хоста, как мы для вышеупомянутой команды:
1 | rails s -b 127.0.0.1 -p 8080 |
Шаг 3: Откройте страницу 'Posts' в проекте Rails
Вы можете увидеть, что ваша база данных успешно размещена на странице Rails Project, введя URL в одном из ваших веб-браузеров:
http://localhost:8080/posts/
Или используйте IP-адрес localhost, как мы:
http://127.0.0.1:8080/posts
Вы сможете увидеть простой CRUD интерфейс, с помощью которого вы можете создавать, редактировать, показывать и уничтожать посты.
Когда я создал пост с помощью ссылки New Post, вот как теперь выглядит страница моих постов:
Теперь вы успешно завершили весь процесс установки Ruby on Rails на ваш Ubuntu, а затем создали пример приложения с использованием базы данных PostgreSQL. Это послужит вам основой для разработки более продуктивных и интерактивных приложений баз данных с помощью Ruby on Rails.