Copilot instructions
.github/instructions/rails-views.instructions.mdRails Views and Helpers Guide
Copilot instructions
Quality
60/100
Scores the file, not the repository.Length
798 words
27 headings · 0 code blocksRepository
54
— · pushed 410 days agoLast changed
3 days ago
First indexed 3 days ago.123456# Rails Views and Helpers Guide78## Core Philosophy910- Keep views simple and logic-free11- Use helpers for presentation logic only12- Leverage Rails' built-in view helpers13- Follow semantic HTML principles14- Optimize for readability and maintainability1516## View Architecture Principles1718- Separate presentation from business logic completely19- Use partials for reusable view components20- Keep views focused on displaying data21- Implement proper HTML semantics22- Design for progressive enhancement2324## Helper Organization2526- Keep helpers focused on specific presentation tasks27- Group related helpers in dedicated modules28- Use ApplicationHelper for truly global helpers29- Document complex helper methods30- Test helpers with various input scenarios3132## Rails Helper Usage3334- Prefer Rails helpers over raw HTML35- Use semantic Rails form helpers36- Leverage Rails' built-in formatting helpers37- Implement proper escaping for security38- Follow Rails conventions for helper naming3940## Partial Best Practices4142- Name partials with leading underscore43- Keep partials small and focused44- Pass locals explicitly for clarity45- Avoid instance variables in partials46- Document partial requirements4748## Form Design Principles4950- Use `form_with` for all forms51- Implement proper form accessibility52- Add appropriate ARIA labels53- Use Rails form builders consistently54- Handle errors at the field level5556## Asset Management5758- Use Rails asset helpers for all assets59- Implement proper image alt texts60- Leverage asset fingerprinting61- Configure CDN for production assets62- Optimize images before serving6364## Internationalization6566- Extract all text to locale files67- Use Rails I18n helpers consistently68- Design views for text expansion69- Handle pluralization properly70- Test with multiple locales7172## Performance Optimization7374- Use fragment caching for expensive views75- Implement Russian doll caching76- Avoid N+1 queries in views77- Lazy load below-fold content78- Profile view rendering times7980## JavaScript Integration8182- Use `data` attributes for JavaScript hooks83- Avoid inline JavaScript in views84- Implement CSP-compliant practices85- Use Stimulus for behavior86- Keep JavaScript unobtrusive8788## Security Practices8990- Always escape user-generated content91- Use Rails sanitize helpers appropriately92- Implement Content Security Policy93- Avoid raw HTML output94- Validate all user inputs9596## Responsive Design9798- Design mobile-first99- Use semantic HTML elements100- Test on actual devices101- Implement proper touch targets102- Consider performance on mobile103104## Accessibility Guidelines105106- Use semantic HTML elements107- Provide proper ARIA labels108- Ensure keyboard navigation works109- Test with screen readers110- Meet WCAG 2.1 AA standards111112## Testing View Code113114- Test complex helpers thoroughly115- Use system tests for user flows116- Verify accessibility in tests117- Test error states explicitly118- Check responsive behavior119120## View Component Patterns121122- Consider ViewComponent for complex UI123- Keep components focused and reusable124- Test components in isolation125- Document component interfaces126- Use slots for flexible content127128## Email Views129130- Design for email client limitations131- Use inline styles for emails132- Test across email clients133- Provide text alternatives134- Keep email templates simple135136## Error Pages137138- Design custom error pages139- Keep error pages self-contained140- Provide helpful error messages141- Include support contact info142- Test error pages thoroughly143144## Layout Best Practices145146- Keep layouts DRY147- Use yield for content areas148- Implement proper meta tags149- Configure CSP headers150- Design consistent navigation151152## Flash Messages153154- Display flash messages prominently155- Auto-dismiss success messages156- Keep error messages visible157- Use semantic colors158- Test flash message display159160## Pagination Patterns161162- Implement accessible pagination163- Use Rails pagination helpers164- Consider infinite scroll carefully165- Show current page clearly166- Handle edge cases properly167168## Search Interface Design169170- Implement live search thoughtfully171- Provide search feedback172- Handle no results gracefully173- Consider search accessibility174- Optimize search performance175176## Data Presentation177178- Format data consistently179- Use Rails number helpers180- Display dates in user timezone181- Handle empty states gracefully182- Provide data export options183184## Mobile Optimization185186- Optimize for touch interfaces187- Consider bandwidth limitations188- Implement offline capabilities189- Test on slow connections190- Use responsive images191192## Development Workflow193194- Use Rails view generators wisely195- Keep views under version control196- Document view dependencies197- Review views for performance198- Maintain view style guide199200## Common Anti-Patterns201202- Avoid business logic in views203- Don't query database from views204- Prevent complex conditionals205- Skip inline styles206- Refuse to duplicate view code207208## Best Practices Summary209210- Keep views simple and semantic211- Use Rails helpers consistently212- Test views thoroughly213- Optimize for performance214- Design for accessibility215216Remember: Views should only present data. Keep logic in models and controllers, and use helpers for presentation formatting.217
Also in levifig/rails-instructions
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| levifig/rails-instructions.github/instructions/rails-core.instructions.md · 54 | Copilot instructions | teststylearchtesting-strategy+5 | 68/100 | 3 days ago | |
| levifig/rails-instructions.cursor/rules/guidelines.mdc · 54 | Cursor rules | teststyletesting-strategysecurity+4 | 71/100 | 3 days ago | |
| levifig/rails-instructions.cursor/rules/rails-rules.mdc · 54 | Cursor rules | testlint-formatstylearch+9 | 84/100 | 3 days ago | |
| levifig/rails-instructions.github/copilot-instructions.md · 54 | Copilot instructions | teststyletesting-strategysecurity+4 | 71/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-api.instructions.md · 54 | Copilot instructions | testlint-formatstyletesting-strategy+7 | 67/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-background-jobs.instructions.md · 54 | Copilot instructions | teststyletesting-strategydatabase+2 | 63/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-controllers.instructions.md · 54 | Copilot instructions | teststylesecurityapi+1 | 56/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-deployment.instructions.md · 54 | Copilot instructions | setupstylesecuritydatabase+2 | 52/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-hotwire.instructions.md · 54 | Copilot instructions | teststylesecurityperformance+1 | 56/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-importmaps.instructions.md · 54 | Copilot instructions | teststylesecuritydatabase+2 | 56/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-mobile.instructions.md · 54 | Copilot instructions | styleuiperformance | 66/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-models.instructions.md · 54 | Copilot instructions | teststylearchtypes+4 | 60/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-performance.instructions.md · 54 | Copilot instructions | teststylegitdatabase+2 | 56/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-security.instructions.md · 54 | Copilot instructions | teststylesecuritydependencies+3 | 63/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-services.instructions.md · 54 | Copilot instructions | teststylearchtesting-strategy+4 | 75/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-styling.instructions.md · 54 | Copilot instructions | styledatabaseuiperformance+3 | 59/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails-testing.instructions.md · 54 | Copilot instructions | teststyletesting-strategysecurity+2 | 56/100 | 3 days ago | |
| levifig/rails-instructions.github/instructions/rails.instructions.md · 54 | Copilot instructions | testlint-formatstylearch+9 | 84/100 | 3 days ago |
Diff against .github/instructions/rails-core.instructions.md Diff against .cursor/rules/guidelines.mdc Diff against .cursor/rules/rails-rules.mdc Diff against .github/copilot-instructions.md Diff against .github/instructions/rails-api.instructions.md Diff against .github/instructions/rails-background-jobs.instructions.md Diff against .github/instructions/rails-controllers.instructions.md Diff against .github/instructions/rails-deployment.instructions.md Diff against .github/instructions/rails-hotwire.instructions.md Diff against .github/instructions/rails-importmaps.instructions.md Diff against .github/instructions/rails-mobile.instructions.md Diff against .github/instructions/rails-models.instructions.md Diff against .github/instructions/rails-performance.instructions.md Diff against .github/instructions/rails-security.instructions.md Diff against .github/instructions/rails-services.instructions.md Diff against .github/instructions/rails-styling.instructions.md Diff against .github/instructions/rails-testing.instructions.md Diff against .github/instructions/rails.instructions.md
