2009-08-21 2 views
7

У меня есть боковая панель, которая будет иметь некоторую логику в ней, подобно тому, как представление ведет переговоры с контроллером. Где поставить логику для частичного? Создать новый контроллер для макета и разместить его там?ruby ​​on rails логика для частичного в макете

Макет для зарегистрированных пользователей, например, приборной панели. На панели мониторинга есть боковая панель, на которой отображается один и тот же динамический контент на каждой странице. Поскольку он отображается на каждой странице, я хочу поставить его в частичном.

Я просто смущен тем, где можно найти информацию и всю эту информацию.

ответ

8

Возможно, есть лучший способ сделать это, но если на большинстве или на всех страницах вы можете создать before_filter на вашем ApplicationController. Вам нужно будет позвонить skip_before_filter на контроллерах/действиях, которым не нужны данные.

class ApplicationController < ActionController::Base 
    before_filter :load_sidebar_data 

protected 
    def load_sidebar_data 

    end 
end 

Если вам не нужно его на большинстве страниц вы все еще положить метод в ApplicationController, вы бы просто добавить перед фильтром, где вам это нужно.

+0

Энди, ты была огромная помощь для меня эти последние два дня! Благодаря! – Ryan

+0

У меня есть боковая панель, которая одинакова на всех страницах, кроме главной страницы, и я использую этот код для захвата требуемых данных. Теперь мне интересно, где именно место для размещения фактического кода сценария просмотра? – jackocnr

1

Поместите частично в папку макетов. Имя файла должно начинаться с символа подчеркивания. Например, «_mypartial.html.erb».

Тогда в ваших взглядах, используйте следующий код, чтобы включить частичную

«mypartial»%>

Обратите внимание, что вы не включаете подчеркивание во встроенном коде рубина при определении которой неравнодушна к визуализации.

Смежные вопросы