rails-dev
1
总安装量
1
周安装量
#51432
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill rails-dev
Agent 安装分布
amp
1
opencode
1
kimi-cli
1
codex
1
claude-code
1
Skill 文档
Community Ruby on Rails Development Best Practices
Comprehensive performance and maintainability optimization guide for Ruby on Rails applications, maintained by Community. Contains 45 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Writing new Rails controllers, models, or views
- Optimizing ActiveRecord queries and database access patterns
- Implementing caching strategies (fragment, Russian doll, low-level)
- Building or refactoring API endpoints
- Adding Turbo Frames and Streams for interactive UIs
- Reviewing code for N+1 queries and security vulnerabilities
- Designing background jobs with Sidekiq or Active Job
- Writing or reviewing database migrations
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Database & ActiveRecord | CRITICAL | db- |
| 2 | Controllers & Routing | CRITICAL | ctrl- |
| 3 | Security | HIGH | sec- |
| 4 | Models & Business Logic | HIGH | model- |
| 5 | Caching & Performance | HIGH | cache- |
| 6 | Views & Frontend | MEDIUM-HIGH | view- |
| 7 | API Design | MEDIUM | api- |
| 8 | Background Jobs & Async | LOW-MEDIUM | job- |
Quick Reference
1. Database & ActiveRecord (CRITICAL)
db-eager-load-associations– Eager load associations to eliminate N+1 queriesdb-add-database-indexes– Add database indexes on queried columnsdb-select-specific-columns– Select only needed columnsdb-batch-processing– Use find_each for large dataset iterationdb-avoid-queries-in-loops– Avoid database queries inside loopsdb-use-scopes– Define reusable query scopes on modelsdb-safe-migrations– Write reversible zero-downtime migrationsdb-exists-over-count– Use exists? instead of count for existence checks
2. Controllers & Routing (CRITICAL)
ctrl-thin-controllers– Keep controllers thin by delegating to models and servicesctrl-strong-params– Always use strong parameters for mass assignmentctrl-restful-routes– Follow RESTful routing conventionsctrl-before-action-scoping– Scope before_action callbacks with only/exceptctrl-respond-to-format– Use respond_to for multi-format responsesctrl-rescue-from– Handle errors with rescue_from in controllers
3. Security (HIGH)
sec-parameterized-queries– Never interpolate user input in SQLsec-strong-params-whitelist– Whitelist permitted params, never blacklistsec-authenticate-before-authorize– Authenticate before authorize on every requestsec-csrf-protection– Enable CSRF protection for all form submissionssec-scope-queries-to-user– Scope queries to current user for authorization
4. Models & Business Logic (HIGH)
model-validate-at-model-level– Validate data at the model levelmodel-avoid-callback-side-effects– Avoid side effects in model callbacksmodel-use-service-objects– Extract complex logic into service objectsmodel-scope-over-class-methods– Use scopes instead of class methods for query compositionmodel-use-enums– Use enums for finite state fieldsmodel-concerns-for-shared-behavior– Use concerns for shared model behaviormodel-query-objects– Extract complex queries into query objects
5. Caching & Performance (HIGH)
cache-fragment-caching– Use fragment caching for expensive view partialscache-russian-doll– Use Russian doll caching for nested collectionscache-low-level– Use Rails.cache.fetch for computed datacache-counter-cache– Use counter caches for association countscache-conditional-get– Use conditional GET with stale? for HTTP caching
6. Views & Frontend (MEDIUM-HIGH)
view-collection-rendering– Use collection rendering instead of loop partialsview-turbo-frames– Use Turbo Frames for partial page updatesview-turbo-streams– Use Turbo Streams for real-time page mutationsview-form-with– Use form_with instead of form_tag or form_forview-avoid-logic-in-views– Move display logic to helpers or presenters
7. API Design (MEDIUM)
api-serializers– Use serializers for consistent JSON responsesapi-pagination– Always paginate collection endpointsapi-versioning– Version APIs from day oneapi-error-responses– Return structured error responsesapi-avoid-jbuilder-hot-paths– Avoid Jbuilder on high-traffic endpoints
8. Background Jobs & Async (LOW-MEDIUM)
job-idempotent-design– Design jobs to be idempotentjob-small-payloads– Pass IDs to jobs, not serialized objectsjob-error-handling– Configure retry and error handling for jobsjob-unique-jobs– Prevent duplicate job enqueuing
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions – Category structure and impact levels
- Rule template – Template for adding new rules
Reference Files
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |