Налаштування та управління проектом
Створення нового Rails застосунку
# Основний Rails застосунок з налаштуваннями за замовчуванням
rails new myapp
# Rails застосунок зі специфічною базою даних
rails new myapp --database=postgresql
rails new myapp --database=mysql
rails new myapp --database=sqlite3
# Тільки API застосунок
rails new myapp --api
# Мінімальний застосунок без стандартних гемів
rails new myapp --minimal
# Rails 7+ зі специфічними налаштуваннями фронтенду
rails new myapp --css tailwind
rails new myapp --css bootstrap
rails new myapp --css bulma
rails new myapp --javascript esbuild
rails new myapp --javascript webpack
rails new myapp --javascript importmap
# Пропуск певних компонентів
rails new myapp --skip-test
rails new myapp --skip-system-test
rails new myapp --skip-active-storage
rails new myapp --skip-action-mailbox
rails new myapp --skip-action-text
Операції з базою даних
# Створення бази даних
rails db:create
# Виконання всіх очікуючих міграцій
rails db:migrate
# Откат останньої міграції
rails db:rollback STEP=1
# Скидання бази даних (видалити, створити, мігрувати)
rails db:reset
# Завантаження початкових даних
rails db:seed
# Видалення бази даних
rails db:drop
# Розширені команди для бази даних
rails db:migrate:status # Перевірка статусу міграцій
rails db:version # Показати поточну версію схеми
rails db:schema:load # Завантажити schema.rb
rails db:structure:load # Завантажити structure.sql
rails db:setup # Створити, завантажити схему та початкові дані
rails db:prepare # Підготувати тестову базу даних
rails db:environment:set RAILS_ENV=production # Налаштування середовища
# Обслуговування бази даних
rails db:schema:cache:clear # Очищення кешу схеми
rails db:schema:cache:dump # Створення кешу схеми
rails db:migrate:down VERSION=20230101000000 # Откатити конкретну міграцію
rails db:migrate:up VERSION=20230101000000 # Виконати конкретну міграцію
Генерація компонентів
Генерація моделей
# Генерація моделі з атрибутами
rails generate model User name:string email:string:uniq age:integer
# Генерація моделі з посиланнями
rails generate model Comment content:text user:references post:references
# Генерація моделі з валідаціями
rails generate model Product name:string{30} price:decimal{10,2}
# Розширена генерація моделей
rails generate model User admin:boolean default:false
rails generate model Article slug:string:uniq title:string{100} body:text published_at:datetime
rails generate model Profile user:belongs_to bio:text social_links:json
rails generate model Category name:string position:integer:index
Генерація контролерів
# Генерація контролера з діями
rails generate controller Users index show create update destroy
# Генерація API контролера
rails generate controller api/v1/Users index show --skip-template-engine
# Генерація контролера зі специфічним простором імен
rails generate controller Admin::Dashboard index
# Додаткові опції для контролерів
rails generate controller Posts --skip-routes
rails generate controller Comments --skip-helper
rails generate controller Admin::Products --skip-assets
rails generate controller Api::V2::Users --skip-template-engine --api
Розширені генератори
# Генерація поштових відправлень
rails generate mailer UserMailer welcome_email password_reset
# Генерація завдання
rails generate job process_payment
rails generate job send_notifications --queue urgent
# Генерація каналу
rails generate channel room speak
# Генерація серіалізатора
rails generate serializer user name email role
# Генерація контролера для stimulus
rails generate stimulus form_validation
Тестування
# Запуск всіх тестів
rails test
# Запуск конкретних тестів
rails test test/models/user_test.rb
rails test test/controllers
rails test test/integration
# Запуск тестів з конкретною конфігурацією
rails test -v # Детальний вивід
rails test --fail-fast # Зупинити на першій помилці
rails test --seed 12345 # Запуск з конкретним насінням
# Системні тести
rails test:system # Запуск всіх системних тестів
rails generate system_test users # Генерація системного тесту
rails test:system -v # Деталізовані системні тести
# Тести на продуктивність
rails generate performance_test browsing
rails test:performance # Запуск тестів на продуктивність
# Паралельне тестування
rails test:parallel # Запуск тестів паралельно
rails test:prepare # Підготовка тестової бази даних
Інструменти розробки та налагодження
# Команди сервера
rails server -p 4000 # Запуск на конкретному порту
rails server -b 0.0.0.0 # Прив'язка до всіх інтерфейсів
rails server -e production # Запуск у конкретному середовищі
rails server -d # Запуск як демон
# Варіації консолі
rails console --sandbox # Запуск консолі в пісочниці
rails console -e production # Консоль для продакшн середовища
rails console test # Консоль для тестового середовища
# Налагодження та інформація
rails stats # Статистика коду
rails notes # Показати коментарі TODO/FIXME/OPTIMIZE
rails middleware # Показати стек проміжного програмного забезпечення
rails runner 'puts User.count' # Запуск Ruby коду
# Інформація про маршрути
rails routes -g users # Показати маршрути, що відповідають шаблону
rails routes -c Users # Показати маршрути для контролера
rails routes --expanded # Вивести маршрути в розширеному форматі
Пайплайн активів та Webpacker
# Команди для пайплайна активів
rails assets:precompile # Компіляція активів
rails assets:clean # Видалення старих скомпільованих активів
rails assets:clobber # Видалення скомпільованих активів
rails assets:environment # Завантаження середовища активів
rails assets:precompile:all # Компіляція всіх активів
# Специфічні команди для Webpacker (якщо використовується Webpacker)
rails webpacker:install # Встановлення Webpacker
rails webpacker:compile # Компіляція JavaScript пакетів
rails webpacker:clean # Очищення старих скомпільованих пакетів
rails webpacker:clobber # Видалення скомпільованих пакетів
Продукція та деплой
# Налаштування для продакшн середовища
rails credentials:edit --environment production
rails db:migrate RAILS_ENV=production
rails assets:precompile RAILS_ENV=production
# Управління секретами
rails secret # Генерація секретного ключа
rails credentials:show # Показати креденціали
rails encrypted:edit config/master.key # Редагування головного ключа
# Управління кешем
rails dev:cache # Перемикання кешування для розробки
rails tmp:cache:clear # Очистка кешу tmp
rails tmp:clear # Очистка всіх тимчасових файлів
Rails 7+ Сучасний фронтенд
# Встановлення Hotwire/Turbo
rails turbo:install
rails turbo:install:redis
# Встановлення Stimulus
rails stimulus:install
# Команди для Import Map
bin/importmap pin @hotwired/turbo-rails
bin/importmap pin @hotwired/stimulus
bin/importmap pin lodash --download
bin/importmap json
# Обробка CSS
rails css:install:tailwind
rails css:install:bootstrap
rails css:install:postcss
rails css:install:sass
Аналіз та обслуговування бази даних
# Керування схемою
rails db:schema:dump # Створення schema.rb
rails db:structure:dump # Створення structure.sql
rails db:version # Показати версію схеми
# Аналіз бази даних
rails db:analyze # Аналіз бази даних (PostgreSQL)
rails db:validate # Перевірка зовнішніх ключів
rails db:seed:replant # Видалити дані та повторно заповнити
# Міграція даних
rails db:environment:set # Налаштування середовища бази даних
rails db:_dump # Створення резервної копії структури
rails db:abort_if_pending_migrations # Перевірка наявності невиконаних міграцій
Звичайні команди для налагодження
# Скидання всього
rails db:drop db:create db:migrate
# Очистка тимчасових файлів та логів
rails log:clear tmp:clear
# Перевірка середовища
rails about
# Перевірка бази даних
rails db:validate
# Показати проміжне ПЗ
rails middleware
# Перевірка маршрутів
rails routes | grep users
Не забувайте:
- Завжди робіть резервні копії вашої бази даних перед великими операціями
- Використовуйте систему контролю версій для всіх змін
- Тестуйте в розробницькому середовищі перед застосуванням на продакшн
- Тримайте геми оновленими та регулярно перевіряйте на наявність вразливостей безпеки
- Моніторьте журнали застосунку на наявність помилок і проблем з продуктивністю
Вищезгадані команди працюють з Rails 7 та 8, хоча деякі нові функції можуть бути специфічними для версій.
Завжди перевіряйте документацію Rails для отримання найактуальнішої інформації щодо конкретних команд та їх опцій.
Перекладено з: Essential Rails 7 & 8 Commands Guide