2011-11-10 8 views
12

Ho una serie di controller e viste associate all'interno della mia app che esistono all'interno dello spazio dei nomi Admin. Voglio che queste viste utilizzino un layout diverso rispetto a quelle nel namespace principale, così posso dare loro un aspetto diverso rispetto al sito normale. C'è un modo per farlo usando la funzionalità integrata di Rails? So che se ho una classe PostController e creo una vista posts.html.erb nella directory layouts questa sarà usata come layout per qualsiasi vista del controller, c'è qualcosa di simile che posso fare per i controller con nomi?Fornire un layout predefinito per le viste all'interno di un namespace

+0

questo è quasi un duplicato di, e sicuramente correlate a: http://stackoverflow.com/questions/4221856/rails-3- layout-per-namespaces-route – OnePablo

risposta

25

Crea classe AdminController personalizzato per i controllori del vostro amministratore che si sta andando a ereditare da. Questo AdminController eredita da ApplicationController e sovrascrive il layout.

class AdminController < ApplicationController 
    layout "admin" 
end 

class Admin::PostController < AdminController 
end 
0

È possibile ignorare layout di default per qualsiasi controller con layout metodo

5

Non è necessario il metodo layout. Dovresti inserire i file di layout per lo spazio dei nomi in views/layouts/<namespace>.

Esempio spazio dei nomi con nome 'foo':

Controller: app/controllers/foo/bar_controller.rb

Layout per questo controller: app/views/layouts/foo/bar.html.erb

+3

Ciò significherebbe che devi creare un layout per ogni vista di namespace – chrisan

Problemi correlati