rails-repository

Manage application-specific entities and manage application-specific entities and manage application-specific entities and manage application-specific entities and manage application-specific entities and manage application-specific entities and manage application-specific entities and manage application-specific entities and manage application-specific entities and manage application-specific ent

Updated Oct 12, 2024
One-click install
npx skills add https://github.com/samrocks03/shuttle-office-service --skill rails-repository
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: rails-repository
Source: https://github.com/samrocks03/shuttle-office-service/tree/main/.claude/skills/rails-repository
Command: npx skills add https://github.com/samrocks03/shuttle-office-service --skill rails-repository

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Rails services often mix query logic in controllers and services. This skill enforces a dedicated repository layer that centralizes ActiveRecord queries in app/services/repositories as class methods, improving reuse and testability.

Core Features & Use Cases

  • Centralized queries: All read operations live in repository classes, keeping controllers and services clean.
  • Consistency & testability: Standardized method patterns (index, find_by_column, fetch_<entities>, search) improve reuse and testing.
  • Use Case: When building a Rails API, create WidgetRepository in app/services/repositories and call WidgetRepository.find_by_uid(uid) from services.

Quick Start

Create repository classes under app/services/repositories/ and implement common queries as class methods.

Frequently Asked Questions about rails-repository

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I centralize ActiveRecord queries in a Rails service layer?

To centralize ActiveRecord queries, move them into repository classes within app/services/repositories. This keeps controllers and services clean by enforcing class-method-only query patterns.

What is the repository pattern in Rails architecture?

The repository pattern in Rails abstracts data access by grouping ActiveRecord queries into dedicated repository classes. This separates query logic from business logic, improving reuse and testability across the application.

How do I keep Rails controllers clean from database query logic?

Keep Rails controllers clean by delegating read operations to repository classes. Instead of writing queries directly in controllers, call standardized class methods like WidgetRepository.find_by_uid(uid) from your services.

Does the repository pattern work with organization-specific data scoping in Rails?

Yes, Rails repository classes can scope queries to organization-specific data automatically. This ensures all centralized query methods respect tenant boundaries when fetching records.

Are Rails repositories better as class methods or instance methods?

Rails repositories are enforced as class methods in this pattern. Standardized class methods like index, find_by_column, and search provide a simple, stateless interface for querying ActiveRecord models.

When should I not use the repository pattern in Rails?

Avoid the repository pattern in simple Rails applications lacking a service layer. If controllers and models handle straightforward CRUD logic without complex queries, adding repositories introduces unnecessary abstraction.