2015-09-24 3 views
1

Как я могу иметь специальный макет в Ruby On Rails 4? Например, я хочу вызвать метод show из бэкэнд и переднего конца. Проблема в том, что мне нужно определить, когда вызывать каждый макет, например, при вызове URL-адреса domain.com/admin/people/1 Я хочу позвонить в макет backend, но когда я вызываю URL-адрес domain.com/people/1, я хочу назвать макет переднего конца.Как я могу управлять разным расположением в Rails 4?

+0

У Вас есть отдельные контроллеры для Люди и администраторы? – stephenmurdoch

+0

нет, я использую один контроллер для всего. Хорошая практика заключается в том, что я отделяю логические бэкэнд и интерфейс? (Люди и административные деятели) – normeno

ответ

2

Создать макет в каталоге макетов, то есть в layouts/admin.html.erb

Маршрута отделить контроллеры:

class AdminPeopleController 

    def show 
     #do things 
     render layout: 'admin' 
    end 
end 

class PeopleController 
    def show 
     #do things 
     render #default 
    end 
end 

И добавить в файл маршрутов:

namespace :admin do 
    resources :people, controller: :admin_people 
end 

resources :people, controller: :people