Перед созданием приложения убедитесь, что установлены:
Проверьте версии:
ruby -v # => ruby 3.2.2
rails -v # => Rails 7.1.3
bundler -v # => Bundler 2.4.10
Основная команда:
rails new my_app
rails new my_app \
-d postgresql \ # Использовать PostgreSQL
-j esbuild \ # Сборка JavaScript с esbuild
-c tailwind \ # CSS с Tailwind
--skip-test \ # Пропустить тестовую инфраструктуру
--api # API-режим
Основные директории:
my_app/
├── app/ # Основной код приложения (MVC)
├── bin/ # Исполняемые файлы
├── config/ # Конфигурация
├── db/ # Миграции и схема БД
├── lib/ # Собственные библиотеки
├── public/ # Статические файлы
├── storage/ # Active Storage файлы
├── test/ # Тесты (или spec/ для RSpec)
├── tmp/ # Временные файлы
├── vendor/ # Зависимости
├── Gemfile # Зависимости Ruby
└── README.md # Описание проекта
Редактируем config/database.yml
:
development:
adapter: postgresql
encoding: unicode
database: my_app_development
pool: 5
username: postgres
password: <%= ENV['DATABASE_PASSWORD'] %>
host: localhost
Создаем БД:
rails db:create
Основные команды:
rails server # Запуск сервера (обычно на 3000 порту)
rails console # Интерактивная консоль
rails routes # Просмотр маршрутов
rails db:migrate # Применение миграций
Создаем полноценный CRUD-ресурс:
rails generate scaffold Post title:string body:text published:boolean
Эта команда создает:
Редактируем config/routes.rb
:
Rails.application.routes.draw do
resources :posts
root 'posts#index' # Главная страница
end
Редактируем Gemfile:
gem 'devise' # Аутентификация
gem 'pundit' # Авторизация
gem 'sidekiq' # Фоновые задачи
gem 'ransack' # Поиск и фильтрация
group :development do
gem 'annotate' # Комментарии в моделях
gem 'rubocop' # Линтер
end
Устанавливаем гемы:
bundle install
Важные конфигурационные файлы:
config/environments/development.rb
config/application.rb
config/initializers/
(кастомные инициализаторы)Популярные варианты:
Heroku (самый простой):
heroku create
git push heroku main
heroku run rails db:migrate
Docker (для production):
FROM ruby:3.2
RUN apt-get update && apt-get install -y postgresql-client
WORKDIR /app
COPY Gemfile* ./
RUN bundle install
COPY . .
CMD ["rails", "server", "-b", "0.0.0.0"]
/storage/*
/node_modules
.env
Резюмируем: создание Rails-приложения начинается с команды rails new
, включает настройку БД, добавление необходимых гемов, генерацию ресурсов и конфигурацию маршрутов. Современный Rails предлагает гибкие опции для разных типов приложений (от монолитов до API-серверов).