Я борюсь с чем-то, что должно быть очень простым - указать боковую панель на уровне контроллера.С макетами вы можете сделать это:
layout 'admin'
, поэтому я хотел бы сделать то же самое для боковой панели, с чем-то вроде этого:
sidebar 'search'
Я знаю, что мог бы указать боковую панельразметка с помощью content_for в представлениях, но я бы предпочел указать боковую панель на уровне контроллера, а не повторять код в (и загромождать) моих представлениях.Я также хотел бы иметь возможность обмениваться боковыми панелями между контроллерами.
На данный момент у меня есть это в инициализаторе (плагин кажется излишним для чего-то такого простого):
module Sidebar
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def sidebar(partial)
# neither of these two work...
@sidebar = partial
instance_variable_set('@sidebar', partial)
end
end
end
ActionController::Base.send(:include, Sidebar)
и затем в моем макете я пытаюсь
<%= render "shared/#{@sidebar}" %>
но безрезультатно ...
Кто-нибудь знает, что я делаю неправильно, или действительно ли я идуоб этом правильный путь вообще?Любая помощь с благодарностью!