💎

Rails Developer

Featured

Full-stack Rails 8 expertise with Hotwire, ActiveRecord patterns, and Rails conventions. Master the Solid Trifecta and modern Rails development.

by Claude Hub
•
Updated about 7 hours ago

Quick Install

Terminal
$ curl -fsSL https://claudehub.infoinvestments.ru/i/skills/rails-developer | bash
Installs to .claude/skills/rails-developer/SKILL.md

Rails Developer Skill

Expert Rails developer with deep knowledge of Rails 8 and modern conventions.

Capabilities

  • Rails 8 and the Solid Trifecta (SolidQueue, SolidCache, SolidCable)
  • Hotwire stack: Turbo Drive, Turbo Frames, Turbo Streams, Stimulus
  • ActiveRecord patterns, query optimization, and N+1 prevention
  • RESTful design, concerns, service objects, and Rails conventions
  • Propshaft asset pipeline and Importmap (no Node.js bundler)
  • Testing with Minitest and system tests

Rails 8 Stack

Solid Trifecta

  • SolidQueue: Background job processing with SQLite/PostgreSQL
  • SolidCache: Database-backed caching (no Redis required)
  • SolidCable: Action Cable with database backend

Asset Pipeline

  • Propshaft: Modern asset pipeline (replaces Sprockets)
  • Importmap: JavaScript modules without bundling

Best Practices

General Principles

  1. Convention over configuration: Follow Rails defaults unless there's a compelling reason
  2. Fat models, skinny controllers: Business logic in models or service objects
  3. Prefer Hotwire over custom JavaScript: Use Turbo and Stimulus before reaching for React/Vue
  4. Extract complexity: Use concerns for shared behavior, service objects for complex operations

Code Organization

  • app/services/ for complex business logic
  • app/models/concerns/ for shared model behavior
  • app/controllers/concerns/ for shared controller behavior
  • Keep controllers focused on HTTP concerns only

Hotwire Patterns

Turbo Frames

Use for partial page updates without full reloads:

<%= turbo_frame_tag "posts" do %>
  <%= render @posts %>
<% end %>

Turbo Streams

Use for real-time updates and multi-target updates:

respond_to do |format|
  format.turbo_stream { render turbo_stream: turbo_stream.append("posts", @post) }
  format.html { redirect_to posts_path }
end

Raw Content

# Rails Developer Skill

Expert Rails developer with deep knowledge of Rails 8 and modern conventions.

## Capabilities

- Rails 8 and the Solid Trifecta (SolidQueue, SolidCache, SolidCable)
- Hotwire stack: Turbo Drive, Turbo Frames, Turbo Streams, Stimulus
- ActiveRecord patterns, query optimization, and N+1 prevention
- RESTful design, concerns, service objects, and Rails conventions
- Propshaft asset pipeline and Importmap (no Node.js bundler)
- Testing with Minitest and system tests

## Rails 8 Stack

### Solid Trifecta

- **SolidQueue**: Background job processing with SQLite/PostgreSQL
- **SolidCache**: Database-backed caching (no Redis required)
- **SolidCable**: Action Cable with database backend

### Asset Pipeline

- **Propshaft**: Modern asset pipeline (replaces Sprockets)
- **Importmap**: JavaScript modules without bundling

## Best Practices

### General Principles

1. **Convention over configuration**: Follow Rails defaults unless there's a compelling reason
2. **Fat models, skinny controllers**: Business logic in models or service objects
3. **Prefer Hotwire over custom JavaScript**: Use Turbo and Stimulus before reaching for React/Vue
4. **Extract complexity**: Use concerns for shared behavior, service objects for complex operations

### Code Organization

- `app/services/` for complex business logic
- `app/models/concerns/` for shared model behavior
- `app/controllers/concerns/` for shared controller behavior
- Keep controllers focused on HTTP concerns only

## Hotwire Patterns

### Turbo Frames

Use for partial page updates without full reloads:

```erb
<%= turbo_frame_tag "posts" do %>
  <%= render @posts %>
<% end %>
```

### Turbo Streams

Use for real-time updates and multi-target updates:

```ruby
respond_to do |format|
  format.turbo_stream { render turbo_stream: turbo_stream.append("posts", @post) }
  format.html { redirect_to posts_path }
end
```