
Изучите основы создания простого приложения Ruby on Rails с помощью пошаговых инструкций по созданию простого приложения «Hello world». Этот учебник является руководством для начинающих по Ruby on Rails и предназначен для пользователей, не имеющих опыта работы с Ruby on Rails.
Требования
- Облачный сервер под управлением Linux (Ubuntu 16.04 или CentOS 7).
- Ruby on Rails установлен и запущен.
- Если у вас есть брандмауэр, вам нужно разрешить доступ к порту 3000.
Установите среду выполнения JavaScript
Вам необходимо установить среду выполнения JavaScript. Начните с установки гема ExecJS, который позволяет выполнять код JavaScript с помощью Ruby:
gem install execjs
Если у вас есть предпочтительная среда выполнения, установите ее. В противном случае мы установим Node.JS для этого проекта.
Ubuntu 16.04
Обновите пакеты вашего сервера и установите curl с помощью следующих команд:
sudo apt-get update
sudo apt-get install curl
Скачайте Node.js PPA:
curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh
Выполните команду nodesource_setup.sh, чтобы добавить PPA в кэш пакетов вашего сервера:
sudo bash nodesource_setup.sh
Этот скрипт обновит сервер автоматически. Нет необходимости запускать apt-get update второй раз.
Установите Node.js:
sudo apt-get install nodejs
Это также автоматически установит npm.
Наконец, установите пакет build-essential для npm:
sudo apt-get install build-essential
CentOS 7
Добавьте репозиторий EPEL:
sudo yum install epel-release
Затем установите Node.JS:
sudo yum install nodejs
Наконец, установите менеджер пакетов Node (npm):
sudo yum install npm
Конструкция MVC
Ruby on Rails использует дизайн на основе MVC. MVC расшифровывается как Model/View/Controller и описывает три основных компонента приложения Ruby on Rails.
Модель
Модель относится к базе данных. Все данные приложения хранятся в модели. По умолчанию Rails использует SQLite, но также поддерживает MySQL и PostgreSQL.
Контроллеры
Контроллеры — это набор файлов, которые определяют, какие действия необходимо выполнить. Контроллеры хранят и извлекают данные из модели (базы данных) по мере необходимости, и используют эти данные (определенные действиями) для создания представления.
Контроллеры направляются маршрутами. Это правила, которые определяют, какие контроллеры будут выполнять те или иные действия. Маршруты определяются в файле routes.rb.
Представление
Представление — это конечный результат, то, что посетитель видит в браузере. Это ответ на действия, определенные контроллерами, — результат всей вашей тяжелой работы над бэкендом.
Создание и тестирование структуры приложения
Команда rails new создаст файловую структуру для вашего приложения. Перейдите в каталог, где вы хотите хранить проекты Ruby on Rails, и используйте эту команду:
rails new hello-world
Не забудьте войти в систему как пользователь Ruby.
На этом этапе вы можете провести быстрый тест, чтобы убедиться, что Ruby on Rails настроен и работает правильно. Перейдите в новый каталог hello-world, который был создан предыдущей командой:
cd hello-world
Запустите веб-сервер с помощью команды:
bin/rails s --binding=0.0.0.0
Должно появиться сообщение:
[user@localhost blog]$ bin/rails server
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
Протестируйте его, перейдя по адресу http://your-ip:3000, вы должны увидеть стандартную страницу приветствия rails.

Когда вы закончите тестировать установку Rails, нажмите Ctrl+C, чтобы остановить приложение и вернуться в командную строку.
Создание приложения
Создайте контроллер и действие
Мы начнем с создания контроллера под названием mainpage:
rails generate controller mainpage
Это создаст несколько файлов:
[user@localhost hello-world]$ rails generate controller mainpage
Running via Spring preloader in process 24461
create app/controllers/mainpage_controller.rb
invoke erb
create app/views/mainpage
invoke test_unit
create test/controllers/mainpage_controller_test.rb
invoke helper
create app/helpers/mainpage_helper.rb
invoke test_unit
invoke assets
invoke coffee
create app/assets/javascripts/mainpage.coffee
invoke scss
create app/assets/stylesheets/mainpage.scss
Первый из них (app/controllers/mainpage_controller.rb) — это тот, который мы будем использовать. Откройте этот файл для редактирования:
nano app/controllers/mainpage_controller.rb
Мы добавим действие с именем hello. Добавьте следующее содержимое в этот файл:
class MainpageController < ApplicationController
def hello
end
end
Сохраните и выйдите из файла.
Создание представления
Далее мы создадим соответствующее представление, также названное hello:
nano app/views/mainpage/hello.html.erb
Добавьте HTML-сообщение в этот файл:
<h1>Hello, world!</h1>
Сохраните и выйдите из файла.
Создание маршрута
Маршрут — это правило, которое будет указывать Rails, какой контроллер использовать для данного запроса. Отредактируйте файл routes.rb:
nano config/routes.rb
Добавьте строку root to: ‘mainpage#hello’ ниже первой строки, чтобы файл выглядел следующим образом:
Rails.application.routes.draw do
root to: 'mainpage#hello'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
Эта строка сообщает Rails, что корневой каталог / будет обслуживать действие нашего контроллера.
Протестируйте приложение
Снова запустите сервер Rails с помощью команды :
bin/rails s --binding=0.0.0.0
Затем протестируйте приложение, перейдя по адресу http://your-ip:3000. Вы увидите сообщение «Hello, World!».