Основний посібник по командах Rails 7 та 8

pic

Налаштування та управління проектом

Створення нового 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

Leave a Reply

Your email address will not be published. Required fields are marked *