Mit Layout sind HTML Templates gemeint die als Container für die dynamisch erzeugten Inhalte dienen. Früher war es durchaus üblich eine HTML Seite die dynamisch erzeugt wird in drei oder mehr Teile zu zerlegen. Beispielsweise in Header, Footer und Content Templates. Heutzutage sind jedoch Layouts modern und tatsächlich sinnvoller, da die Templates mit <html> anfangen und mit </html> enden, was die Bearbeitung und Weiterentwicklung erleichtert.
Das arbeiten mit Layouts in Rails in einfach. Im Verzeichnis
/view/layouts
wird für jeden mit dem Scaffolder erzeugten Controller ein gleichnamiges Layout hinterlegt. Gibt es für einen Controller kein Layout wird automatisch ein Layout mit dem Name application.erb verwendet. Soll ein Controller ein bestimmtes Layout verwenden das weder mit dem Namen übereinstimmt noch das application.erb ist, kann im Controller mittels der layout Methode das Layout definiert werden.
class DomainController < ActionController::Base
layout "provider"
end