2010-02-27 5 views
5

Es ist in meinem Verständnis ist, dass ich, indemGeben Sie Layouts für bestimmte Controller in Ruby on Rails

layout 'mylayout' 

im Controller-Datei ein Layout für einen Controller angeben. Ich verstehe weiter, dass ich bestimmte Aktionen angeben kann, für die das Layout mit und :except wie folgt aufgerufen wird: Layout 'mylayout',: only => [: index,: new] oder Layout 'mylayout',: außer => [: Index: neu]

Was ich frage mich ist, kann ich layout 'mylayout' in meiner Anwendung Controller setzen und festlegen, dass nur für bestimmte Steuerungen mit so etwas wie :only_controller und :except_controller gemacht werden, oder muss ich angeben, layout 'mylayout' in jedem Controller möchte ich es in gerendert werden?

Der Grund dafür ist, dass ich ein paar Controller, die verantwortlich für den Admin-Bereich meiner Website sind, und ich möchte ein anderes Layout für sie haben.

Antwort

2

Lassen Sie die Administrator-Controller von einem AdminController erben und erstellen Sie ein admin.html.erb Layout. Auf diese Weise haben alle Controller für Ihren Admin-Bereich dieses Layout.

+0

Aber ich brauche keinen tatsächlichen physischen Admin-Controller - es existiert nicht. Wenn ich es erstelle - muss es ein Datenbank-Backend haben? –

+0

Es gibt keine Möglichkeit, Controller mit der Datenbank zu verbinden :) Stellen Sie sich einfach eine abstrakte Basisklasse für Ihre Admin-Controller vor. Es wird sogar die Dinge klarer machen, denn wenn Sie einen Controller sehen, der von "AdminController" erbt, wissen Sie sofort, dass es sich um einen Controller aus dem Admin-Bereich handelt. Es kann auch sein, dass Sie ein paar 'Vorher'-Filter benötigen, und eine Basisklasse wäre ein perfekter Ort für sie. –

+0

vielen dank! –

Verwandte Themen