render-page
Use this skill to inspect what a Rails page currently displays, extract HTML content, or verify rendering WITHOUT starting a dev server. Useful for understanding page output before making changes, debugging views, searching for content, or testing that pages work correctly. Provides scripts/render.rb for quick page inspection and HTML extraction.
When & Why to Use This Skill
The render-page skill provides a powerful utility for Ruby on Rails developers to inspect, extract, and verify page rendering without starting a development server. It facilitates efficient view debugging, HTML content analysis, and automated rendering checks by interacting directly with the Rails environment, making it an essential tool for rapid web development and quality assurance.
Use Cases
- 1. Rapid View Debugging: Inspect the rendered HTML of Rails views instantly to identify layout issues or missing elements without the overhead of booting a local development server.
- 2. Automated Rendering Checks: Batch test multiple application routes to ensure they render successfully (200 OK), providing a quick way to catch regressions after code changes.
- 3. Content Verification: Search for specific strings or keywords within rendered pages to ensure that dynamic data and business logic are producing the expected UI output.
- 4. Headless HTML Extraction: Capture and save the full HTML output of specific routes for further analysis, SEO auditing, or integration testing purposes.
- 5. CI/CD Pipeline Integration: Utilize the script's exit codes in automated workflows to verify page integrity before deployment.
| name | render-page |
|---|---|
| description | Use this skill to inspect what a Rails page currently displays, extract HTML content, or verify rendering WITHOUT starting a dev server. Useful for understanding page output before making changes, debugging views, searching for content, or testing that pages work correctly. Provides scripts/render.rb for quick page inspection and HTML extraction. |
Render Pages Without Starting a Server
Use the scripts/render.rb tool to verify page rendering, extract HTML, or search content in rendered pages.
Basic Usage
The script accepts the database either as an argument or via RAILS_APP_DB environment variable:
# Pass database as argument
scripts/render.rb db/2025-alexandria-80-s-neon-nights.sqlite3 /people
# Or just the database name
scripts/render.rb 2025-alexandria-80-s-neon-nights /people
# Or use environment variable
RAILS_APP_DB=2025-alexandria-80-s-neon-nights scripts/render.rb /people
Common operations:
# Check if pages render successfully
scripts/render.rb 2025-alexandria-80-s-neon-nights --check /people /heats /solos
# Show summary with page sizes
scripts/render.rb 2025-alexandria-80-s-neon-nights /people /heats
# Get full HTML output (single page only)
scripts/render.rb 2025-alexandria-80-s-neon-nights --html /solos
# Search for specific content in rendered pages
scripts/render.rb 2025-alexandria-80-s-neon-nights --search "Solos" /solos
Script Options
--check- Only check if page renders (exit 0 on success, 1 on failure)--html- Output full HTML content (works with single path only)--search TEXT- Search for specific text in rendered output--verbose, -v- Show detailed information--help, -h- Show help message
Common Workflows
1. Verify Pages Render Successfully
Test multiple pages at once and see their sizes:
scripts/render.rb db/DATABASE.sqlite3 /people /heats /solos
For CI/CD pipelines, use --check mode (silent, exit code indicates success):
scripts/render.rb db/DATABASE.sqlite3 --check /people /heats /solos
echo $? # 0 = all succeeded, 1 = at least one failed
2. Search for Content in Rendered Pages
Verify specific content appears in a page:
scripts/render.rb db/DATABASE.sqlite3 --search "Rhythm Solos" /solos
# Output: ✓ /solos - 'Rhythm Solos' found
3. Extract HTML for Analysis
Save rendered HTML to a file for inspection:
scripts/render.rb db/DATABASE.sqlite3 --html /heats > heats.html
Advanced: Custom Scripts with Rails API
For complex custom logic, write a Ruby script using Rails' routing API directly:
# custom_test.rb
env = { "PATH_INFO" => '/heats', "REQUEST_METHOD" => "GET" }
code, headers, response = Rails.application.routes.call(env)
if code == 200
html = response.body.force_encoding('utf-8')
puts "Success: #{html.length} bytes"
else
puts "Error: #{code}"
exit 1
end
Run with bin/run db/DATABASE.sqlite3 custom_test.rb
See lib/tasks/prerender.rake for a production example of this technique.