Back to Everything Claude Code

Ruby Patterns

.kiro/steering/ruby-patterns.md

2.0.02.2 KB
Original Source

Ruby Patterns

This file extends the common patterns with Ruby and Rails specific content.

Standards

  • Target Ruby 3.3+ for new Rails work
  • Add # frozen_string_literal: true to new files when the project uses that convention
  • Prefer clear Ruby over clever metaprogramming

Formatting & Linting

bash
bundle exec rubocop
bundle exec rubocop -A

Rails Way First

  • Start with plain Rails MVC and Active Record conventions
  • Introduce service objects, query objects, form objects when model/controller carries multiple responsibilities
  • Keep controllers transport-focused: auth, params, response shape

Persistence

  • Prefer PostgreSQL for multi-host production Rails apps
  • Keep raw SQL behind query objects or model scopes; parameterize every dynamic value

Background Jobs

  • Use Solid Queue for greenfield Rails 8 apps with modest throughput
  • Use Sidekiq for mature observability, high throughput, or existing Redis infrastructure

Frontend

  • Prefer Hotwire (Turbo, Stimulus, Importmap, Propshaft) for server-rendered Rails apps
  • Use React/Vue/Inertia when interaction complexity justifies the extra client surface

Authentication

  • Use Rails 8 authentication generator for straightforward session auth
  • Use Devise when requirements include OAuth, MFA, confirmable/lockable flows

Security

  • Keep CSRF protection enabled for state-changing browser requests
  • Use strong parameters or typed boundary objects before mass assignment
  • Store secrets in Rails credentials or environment variables — never commit plaintext keys
  • Prefer Active Record query APIs and parameterized SQL — never interpolate user input into SQL
bash
bundle exec bundle-audit check --update
bundle exec brakeman --no-progress

Testing

  • Use Minitest when the app follows default Rails test stack
  • Use RSpec when already established in the project
  • Put fast domain behavior in model/service/query tests
  • Use system tests with Capybara for browser-critical flows only
bash
bin/rails test
bundle exec rspec

Reference

See skill: backend-patterns for service boundaries and adapter patterns. See skill: security-review for secure-by-default review patterns.