models

A set of Rails guidelines for models, the parts of an application that represent data and its business rules. They cover Active Record relationships, database constraints, schema notes, organization, and keeping each model focused.

In plain words
What is it for?
Use them when designing Rails models, adding associations, documenting columns after migrations, enforcing data integrity, organizing model code, and deciding when a large model should be split.
Why use it?
They help keep data rules close to the data and make the database enforce important conditions. Clear structure and explicit relationships reduce confusing dependencies and oversized models.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/levifig/rails-instructions/models
Clone the repo
git clone --depth 1 https://github.com/levifig/rails-instructions

Made for: Cursor.

Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 940 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.00940
Opus 5 $0.00000 $0.00470
Sonnet 5 $0.00000 $0.00188
Haiku 4.5 $0.00000 $0.00094

Measured yesterday against content hash 3601bf241d62, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

models scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/rails/models.mdc · 157 lines

How it starts

The opening of the file, as written. The whole thing — 157 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Rails Models and Active Record Guide

Core Philosophy

  • Models are the heart of your Rails application
  • Keep business logic and data integrity in models
  • Use database constraints to enforce rules
  • Design for clarity and maintainability
  • Trust Active Record's conventions

Model Design Principles

  • Focus models on their core domain responsibility
  • Keep models cohesive and loosely coupled
  • Use descriptive names that reflect business concepts
  • Avoid God objects - split large models when needed
  • Document complex business rules clearly

Schema Management

  • Always use the annotate gem for schema documentation
  • Keep schema annotations at the top of model files
  • Run annotate after every migration
  • Review schema changes carefully before committing
  • Document non-obvious column purposes

Model Organization

  • Order model contents consistently for readability
  • Place constants at the top
  • Group related elements together
  • Keep public interface minimal
  • Document complex logic thoroughly

Associations Best Practices

  • Define all relationships explicitly
  • Use appropriate dependent options
  • Consider bi-directional associations carefully
  • Avoid circular dependencies
  • Document association purposes when not obvious

Validation Strategy

  • Validate at the model level always
  • Use database constraints to match validations
  • Keep validation messages user-friendly
  • Group related validations together
  • Test all validation scenarios

Database Constraints

  • Add NOT NULL constraints for required fields
  • Use unique indexes for uniqueness validations
  • Implement foreign key constraints
  • Add check constraints for complex rules
  • Document constraint purposes in migrations

Scopes and Queries

  • Create scopes for commonly used queries
  • Keep scope names descriptive and intention-revealing
  • Chain scopes for complex queries
  • Avoid scopes with side effects
  • Use class methods for scopes with parameters

Callbacks Guidelines

  • Use callbacks sparingly and purposefully
  • Keep callback methods private
  • Avoid callbacks that touch other models
  • Document callback purposes clearly
  • Consider service objects for complex workflows

Read the full file on GitHub · 157 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 157 lines · 0 tokens per session scan A 3601bf241d62

Subscribe to this mod's changes

models is a cursor rule published in the GitHub repository levifig/rails-instructions (54 stars, last pushed 1y ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 940 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.