Cookbook
Task-oriented entry point: "I want to do X — where is it?". Every recipe lives in Real-world patterns or the guide; this page is a pure index by goal so you don't need to know a pattern's name. Nothing is duplicated here — only links.
Recipes by task
| I want to… | See |
|---|---|
| Share layout/chrome across all components | patterns §1 base layer |
| Add a CRUD screen with almost no code | patterns §2 thin leaves, example.md |
| List records with columns/filters/sorts | List, patterns §3–4 |
| Scope/order what an Index shows | patterns §3 (load_data) |
| Embed a child list inside a Show | patterns §4, nesting.md |
| Build a custom form + strong params | patterns §5, Form |
| Nested attributes in a form | patterns §5, example_advanced.md |
| Autocomplete / ajax select field | patterns §6 |
| Split a detail page into tabs | patterns §7 |
| Prefill/derive fields before save | patterns §8 (after_assign_attributes) |
| Guard/redirect before rendering | patterns §8, basic_component.md |
| Customize the action toolbar | patterns §9, intents.md |
| Disable a button with a reason | feasibility.md, patterns §9 |
| Export CSV / PDF | patterns §10 |
| Launch a background job from a button | patterns §11 |
| Toggle a boolean (activate/lock/…) | patterns §11 |
| Clone/duplicate a record | patterns §11 |
| Non-persistent / upload-only form | patterns §12, virtual_models.md |
| Public page / inbound webhook | patterns §13, gotchas §14 |
| Custom button look | patterns §14, intents.md |
| Inline-edit a card without a full page | patterns §15 turbo-frame inline edit |
| Multi-step wizard across components | patterns §16 multi-step wizard |
| Reorder/inline-patch without a form | patterns §17 inline PATCH |
| Magic-login / invite / reset / confirm link (no session) | patterns §18 signed-token capability links |
If a goal isn't listed, check the DSL reference and glossary.