Добро пожаловать в мир Ruby on Rails

Если вы читаете это, вы, вероятно, стремитесь погрузиться в мир веб-разработки, и что может быть лучше, чем начать с Ruby on Rails? Этот фреймворк, созданный Дэвидом Хейнемейером Ханссоном, известен своей элегантностью, мощью и радостью, которую он приносит разработчикам. Так что пристегнитесь, и давайте отправимся в это путешествие вместе.

Что такое Ruby on Rails?

Ruby on Rails, часто называемый просто Rails — это веб-фреймворк для разработки приложений, написанный на языке программирования Ruby. Он создан для того, чтобы облегчить веб-разработку, делая предположения о том, что нужно каждому разработчику для начала работы. Это «предвзятое программное обеспечение» поощряет определённый способ действий, который может значительно повысить вашу продуктивность, если вы изучите «Путь Rails».

Настройка среды разработки

Прежде чем мы перейдём к интересному, давайте настроим нашу среду разработки.

Установка Ruby и Rails

Для начала вам нужно установить Ruby и Rails. Вот шаги:

  1. Установка Ruby: вы можете использовать менеджер версий, такой как RVM (Ruby Version Manager) или rbenv, для установки Ruby. Например, с RVM:

    rvm install ruby-3.1.2
    rvm use ruby-3.1.2
    
  2. Установка Rails: после установки Ruby вы можете установить Rails с помощью gem:

    gem install rails
    
  3. Создание нового приложения Rails: теперь давайте создадим новое приложение Rails. Откройте терминал и выполните:

    rails new my_app
    cd my_app
    

Запуск веб-сервера

Чтобы увидеть ваше приложение в действии, вам необходимо запустить веб-сервер. Выполните следующую команду в каталоге вашего приложения:

bin/rails server

Если вы работаете в Windows, вам может потребоваться использовать:

ruby bin\rails server

Это запустит ваш сервер, и вы сможете получить доступ к своему приложению по адресу http://localhost:3000.

Понимание паттерна MVC

Rails следует паттерну Model-View-Controller (MVC), который является фундаментальным понятием в веб-разработке.

Модели

Модели представляют данные и бизнес-логику вашего приложения. Они взаимодействуют с базой данных и определяют структуру ваших данных.

Контроллеры

Контроллеры обрабатывают входящие запросы, взаимодействуют с моделями для извлечения или обновления данных, а затем отображают соответствующее представление.

Представления

Представления отвечают за отображение данных пользователю. Обычно они пишутся на HTML и ERB (Embedded Ruby).

Вот простая последовательная диаграмма, иллюстрирующая поток MVC:

sequenceDiagram participant Пользователь participant Контроллер participant Модель participант Представление Пользователь->>Контроллер: Запрос Контроллер->>Модель: Получение Данных Модель->>Контроллер: Возврат Данных Контроллер->>Представление: Отображение Представления Представление->>Пользователь: Отображение Данных

Маршрутизация в Rails

Маршрутизация в Rails сопоставляет URL с действиями контроллера. Вот пример того, как вы можете добавить маршрут в файл config/routes.rb:

Rails.application.routes.draw do
  get "/articles", to: "articles#index"
  root "articles#index"
end

Это устанавливает маршрут для /articles и делает корневой путь вашего приложения указывающим на действие index контроллера ArticlesController.

Создание вашего первого контроллера и представления

Давайте создадим простое приложение «Привет, Rails!».

Добавление маршрута

Сначала добавьте маршрут в файл config/routes.rb:

Rails.application.routes.draw do
  get "/hello", to: "hello#index"
end

Создание контроллера

Сгенерируйте новый контроллер:

bin/rails generate controller Hello index

Создание представления

Отредактируйте файл app/views/hello/index.html.erb, чтобы отобразить ваше сообщение:

<h1>Hello, Rails!</h1>

Теперь, когда вы посетите http://localhost:3000/hello, вы увидите своё сообщение «Hello, Rails!».

Разработка через тестирование (TDD)

TDD является важной частью разработки Rails. Она обеспечивает надёжность и удобство сопровождения вашего кода. Вот краткий пример с использованием RSpec:

Установка RSpec

Добавьте RSpec в свой Gemfile:

group :development, :test do
  gem 'rspec-rails', '~> 5.0'
end

Затем запустите:

bundle install
bin/rails generate rspec:install

Написание теста

Создайте тест для своего HelloController:

# spec/controllers/hello_controller_spec.rb
require 'rails_helper'

RSpec.describe HelloController, type: :controller do
  describe 'GET #index' do
    it 'возвращает успешный ответ' do
      get :index
      ожидайте(ответ).to be_successful
    end

    это 'отображает шаблон индекса' do
      получить :индекс
      ожидаем(ответ).to render_template('index')
    конец
  конец
конец

Запустите свои тесты с:

bin/rspec

Развёртывание с Heroku

После создания вашего приложения пришло время его развернуть. Heroku — популярный выбор для развёртывания приложений Rails.

Настройка Heroku

  1. Установите Heroku CLI: скачайте и установите Heroku CLI с сайта Heroku.
  2. Создайте приложение Heroku: выполните следующую команду в директории вашего приложения:
    heroku create
    
  3. Отправьте свой код: отправьте свой код на Heroku:
    git push heroku main
    
  4. Мигрируйте базу данных: запустите миграции базы данных на Heroku:
    heroku run rails db:migrate
    

Теперь ваше приложение работает на Heroku!

Заключение

Ruby on Rails — мощный и элегантный фреймворк, который делает веб-разработку увлекательным занятием. От настройки вашей среды до развёртывания вашего приложения, Rails предоставляет надёжный набор инструментов и передовых практик, которые помогут вам создавать высококачественные веб-приложения.

Помните, практика делает совершенным. Продолжайте строить, тестировать и развёртывать, и вскоре вы станете мастером Rails.