CARVIEW |
Select Language
HTTP/2 200
date: Wed, 23 Jul 2025 13:23:02 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"a1d4f6cf8c4cebedf529be2193d0d327"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=yypDp1BeN2bp21woA74mk9ViD7%2BWrBh9Vq6Qb4WyUGQ5QoeocRCqxi8xU97r8%2B1ddLcIJQWH%2FjTLe%2F1u1oJaIkA44Z5Rc2f%2FMcIjSTrziPLpInkH8nXsnUyLyxtJbTU94mYSlDaGdPgYPQFKhgUgznq63uXlm9%2FS2y3FgCxgn0ge%2FkxkAImk5Ec7hbABkzV0po5Yj53io%2BsJi7YqkIkX0A1Dsq9GGiKWaymhERq78ZfXtqCMtPEBhr%2B6uqvTM3Dk7lKprrlXWZj0vpUmuHGBEw%3D%3D--u0EwJ2Wtvcld%2Bu6Q--1lOa0bNJjKWLBgRX6pIShQ%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.841506870.1753276982; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 13:23:02 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 13:23:02 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: B0DC:351DD4:C3C7E9:E87A6A:6880E236
Reusing templates · nesquena/rabl Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 336
Reusing templates
Perry Hertler edited this page Aug 24, 2022
·
9 revisions
There are a few ways to re-use templates:
partial
is used to access the representation of another object for use in node
:
object @post
node :categories do |post|
post.categories.map do |category|
partial("categories/show", :object => category)
end
end
extends
is used to inherit from another template:
object @post
child :categories do
extends "categories/show"
end
The except
option can be provided to exclude attributes from the parent template.
# products/show.rabl
attributes :name, :dimensions, :weight, :price
# free_products/show.rabl
extends "products/show", except: :price
You can also pass an object to extends
, for example:
node :car do
extends "cars/show", object: car
end
This can come in handy if you're rendering templates from different contexts and the method cannot be inferred.
partial
allows you to reuse templates for multiple objects and extends
allows you to reuse templates from multiple templates.
# users/show.rabl
object @presentation
node :blogger do
partial "writers/info", object: presentation.blogger
end
node :author do
partial "writers/info", object: presentation.author
end
# writers/_info.rabl
object @writer # ignored when used as a partial so I usually don't specify it
attributes :name, :first_published_date, :birth_date, :death_date
child :publications do
extends "publications/public"
end
# publications/public.rabl
attributes :title, :publication_date, :publisher
# publications/show.rabl
object @publication
extends "publications/public"
You can’t perform that action at this time.