323 lines
7.5 KiB
Markdown
323 lines
7.5 KiB
Markdown
# Rails Guides Reference Mappings
|
|
|
|
**Purpose**: Maps topic names to official Rails Guides URLs
|
|
|
|
**Version**: 1.0.0 (supports Rails 6.1 - 8.0)
|
|
|
|
---
|
|
|
|
## Topic Mappings
|
|
|
|
### Getting Started
|
|
```yaml
|
|
getting_started:
|
|
title: "Getting Started with Rails"
|
|
url_path: "getting_started.html"
|
|
version_support: "all"
|
|
keywords: [tutorial, first app, setup, install]
|
|
|
|
initialization:
|
|
title: "The Rails Initialization Process"
|
|
url_path: "initialization.html"
|
|
version_support: "all"
|
|
keywords: [boot, startup, initialization]
|
|
```
|
|
|
|
### Active Record
|
|
|
|
```yaml
|
|
active_record_basics:
|
|
title: "Active Record Basics"
|
|
url_path: "active_record_basics.html"
|
|
version_support: "all"
|
|
keywords: [orm, models, database, CRUD]
|
|
|
|
active_record_migrations:
|
|
title: "Active Record Migrations"
|
|
url_path: "active_record_migrations.html"
|
|
version_support: "all"
|
|
keywords: [migrations, schema, database changes]
|
|
|
|
active_record_validations:
|
|
title: "Active Record Validations"
|
|
url_path: "active_record_validations.html"
|
|
version_support: "all"
|
|
keywords: [validation, validates, presence, format]
|
|
|
|
active_record_callbacks:
|
|
title: "Active Record Callbacks"
|
|
url_path: "active_record_callbacks.html"
|
|
version_support: "all"
|
|
keywords: [callbacks, before_save, after_create, lifecycle]
|
|
|
|
active_record_associations:
|
|
title: "Active Record Associations"
|
|
url_path: "association_basics.html"
|
|
version_support: "all"
|
|
keywords: [has_many, belongs_to, has_one, through, polymorphic]
|
|
|
|
active_record_querying:
|
|
title: "Active Record Query Interface"
|
|
url_path: "active_record_querying.html"
|
|
version_support: "all"
|
|
keywords: [query, where, joins, includes, eager loading]
|
|
```
|
|
|
|
### Action Controller
|
|
|
|
```yaml
|
|
action_controller_overview:
|
|
title: "Action Controller Overview"
|
|
url_path: "action_controller_overview.html"
|
|
version_support: "all"
|
|
keywords: [controllers, requests, responses, filters]
|
|
|
|
routing:
|
|
title: "Rails Routing from the Outside In"
|
|
url_path: "routing.html"
|
|
version_support: "all"
|
|
keywords: [routes, resources, namespace, scope, member, collection]
|
|
```
|
|
|
|
### Action View
|
|
|
|
```yaml
|
|
action_view_overview:
|
|
title: "Action View Overview"
|
|
url_path: "action_view_overview.html"
|
|
version_support: "all"
|
|
keywords: [views, templates, rendering, partials]
|
|
|
|
layouts_and_rendering:
|
|
title: "Layouts and Rendering in Rails"
|
|
url_path: "layouts_and_rendering.html"
|
|
version_support: "all"
|
|
keywords: [layouts, render, yield, content_for]
|
|
|
|
form_helpers:
|
|
title: "Action View Form Helpers"
|
|
url_path: "form_helpers.html"
|
|
version_support: "all"
|
|
keywords: [forms, form_with, form_for, input fields]
|
|
```
|
|
|
|
### Action Mailer
|
|
|
|
```yaml
|
|
action_mailer_basics:
|
|
title: "Action Mailer Basics"
|
|
url_path: "action_mailer_basics.html"
|
|
version_support: "all"
|
|
keywords: [email, mailer, deliver, smtp]
|
|
```
|
|
|
|
### Action Cable
|
|
|
|
```yaml
|
|
action_cable_overview:
|
|
title: "Action Cable Overview"
|
|
url_path: "action_cable_overview.html"
|
|
version_support: "all"
|
|
keywords: [websockets, channels, subscriptions, broadcasting]
|
|
```
|
|
|
|
### Active Job
|
|
|
|
```yaml
|
|
active_job_basics:
|
|
title: "Active Job Basics"
|
|
url_path: "active_job_basics.html"
|
|
version_support: "all"
|
|
keywords: [jobs, background, queues, sidekiq, delayed_job]
|
|
```
|
|
|
|
### Active Storage
|
|
|
|
```yaml
|
|
active_storage_overview:
|
|
title: "Active Storage Overview"
|
|
url_path: "active_storage_overview.html"
|
|
version_support: "6.0+"
|
|
keywords: [uploads, files, attachments, S3, cloud storage]
|
|
```
|
|
|
|
### Testing
|
|
|
|
```yaml
|
|
testing:
|
|
title: "Testing Rails Applications"
|
|
url_path: "testing.html"
|
|
version_support: "all"
|
|
keywords: [tests, minitest, rspec, fixtures, factories]
|
|
```
|
|
|
|
### Security
|
|
|
|
```yaml
|
|
security:
|
|
title: "Securing Rails Applications"
|
|
url_path: "security.html"
|
|
version_support: "all"
|
|
keywords: [security, CSRF, XSS, SQL injection, authentication]
|
|
```
|
|
|
|
### Debugging
|
|
|
|
```yaml
|
|
debugging_rails_applications:
|
|
title: "Debugging Rails Applications"
|
|
url_path: "debugging_rails_applications.html"
|
|
version_support: "all"
|
|
keywords: [debug, byebug, pry, logs, debugging]
|
|
```
|
|
|
|
### Configuration
|
|
|
|
```yaml
|
|
configuring:
|
|
title: "Configuring Rails Applications"
|
|
url_path: "configuring.html"
|
|
version_support: "all"
|
|
keywords: [config, environment, settings, credentials]
|
|
|
|
rails_application_templates:
|
|
title: "Rails Application Templates"
|
|
url_path: "rails_application_templates.html"
|
|
version_support: "all"
|
|
keywords: [templates, generators, app templates]
|
|
```
|
|
|
|
### Performance
|
|
|
|
```yaml
|
|
caching_with_rails:
|
|
title: "Caching with Rails"
|
|
url_path: "caching_with_rails.html"
|
|
version_support: "all"
|
|
keywords: [cache, caching, fragment cache, low-level cache]
|
|
|
|
asset_pipeline:
|
|
title: "The Asset Pipeline"
|
|
url_path: "asset_pipeline.html"
|
|
version_support: "all"
|
|
keywords: [assets, sprockets, javascript, css, images]
|
|
```
|
|
|
|
### Internationalization
|
|
|
|
```yaml
|
|
i18n:
|
|
title: "Rails Internationalization (I18n) API"
|
|
url_path: "i18n.html"
|
|
version_support: "all"
|
|
keywords: [i18n, translations, locales, internationalization]
|
|
```
|
|
|
|
### Action Mailbox
|
|
|
|
```yaml
|
|
action_mailbox_basics:
|
|
title: "Action Mailbox Basics"
|
|
url_path: "action_mailbox_basics.html"
|
|
version_support: "6.0+"
|
|
keywords: [incoming email, mailbox, inbound email]
|
|
```
|
|
|
|
### Action Text
|
|
|
|
```yaml
|
|
action_text_overview:
|
|
title: "Action Text Overview"
|
|
url_path: "action_text_overview.html"
|
|
version_support: "6.0+"
|
|
keywords: [rich text, trix, wysiwyg, text editor]
|
|
```
|
|
|
|
### Rails 7+ Specific
|
|
|
|
```yaml
|
|
autoloading_and_reloading_constants:
|
|
title: "Autoloading and Reloading Constants"
|
|
url_path: "autoloading_and_reloading_constants.html"
|
|
version_support: "all"
|
|
keywords: [autoload, zeitwerk, eager loading]
|
|
|
|
engines:
|
|
title: "Getting Started with Engines"
|
|
url_path: "engines.html"
|
|
version_support: "all"
|
|
keywords: [engines, plugins, mountable]
|
|
|
|
api_app:
|
|
title: "Using Rails for API-only Applications"
|
|
url_path: "api_app.html"
|
|
version_support: "5.0+"
|
|
keywords: [api, json, api-only, rest]
|
|
```
|
|
|
|
### Rails 8+ Specific
|
|
|
|
```yaml
|
|
solid_cache:
|
|
title: "Solid Cache"
|
|
url_path: "solid_cache.html"
|
|
version_support: "8.0+"
|
|
keywords: [solid cache, caching, database cache]
|
|
|
|
solid_queue:
|
|
title: "Solid Queue"
|
|
url_path: "solid_queue.html"
|
|
version_support: "8.0+"
|
|
keywords: [solid queue, jobs, background jobs]
|
|
|
|
solid_cable:
|
|
title: "Solid Cable"
|
|
url_path: "solid_cable.html"
|
|
version_support: "8.0+"
|
|
keywords: [solid cable, websockets, action cable]
|
|
```
|
|
|
|
---
|
|
|
|
## Version Support Legend
|
|
|
|
- `all` - Available in Rails 3.0+
|
|
- `5.0+` - Available from Rails 5.0 onwards
|
|
- `6.0+` - Available from Rails 6.0 onwards
|
|
- `7.0+` - Available from Rails 7.0 onwards
|
|
- `8.0+` - Available from Rails 8.0 onwards
|
|
|
|
## URL Construction
|
|
|
|
**Pattern**: `https://guides.rubyonrails.org/v{MAJOR.MINOR}/{url_path}`
|
|
|
|
**Examples**:
|
|
- Rails 7.1: `https://guides.rubyonrails.org/v7.1/routing.html`
|
|
- Rails 8.0: `https://guides.rubyonrails.org/v8.0/routing.html`
|
|
- Latest: `https://guides.rubyonrails.org/routing.html` (edge)
|
|
|
|
## Usage in rails-docs-search
|
|
|
|
```ruby
|
|
# Pseudocode for topic lookup
|
|
topic = "active_record_associations"
|
|
mapping = reference[topic]
|
|
version = detect_rails_version() # e.g., "7.1"
|
|
url = "https://guides.rubyonrails.org/v#{version}/#{mapping.url_path}"
|
|
content = WebFetch(url, prompt: "Extract information about associations")
|
|
```
|
|
|
|
## Maintenance
|
|
|
|
**Update frequency**: Quarterly or when new Rails version released
|
|
|
|
**Adding new topics**:
|
|
1. Check official Rails Guides index
|
|
2. Add mapping with all fields
|
|
3. Test URL accessibility
|
|
4. Update this file
|
|
|
|
**Version-specific topics**:
|
|
- Mark with `version_support`
|
|
- Skill should gracefully handle unavailable guides for older Rails versions
|