логика ruby ​​on rails для партиала в макете

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

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

Я просто запутался, куда поместить находку и всю эту информацию.


person Ryan    schedule 21.08.2009    source источник


Ответы (3)


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

class ApplicationController < ActionController::Base
  before_filter :load_sidebar_data

protected
  def load_sidebar_data

  end
end

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

person Andy Gaskell    schedule 21.08.2009
comment
Энди, ты мне очень помог за последние два дня! Спасибо! - person Ryan; 21.08.2009
comment
У меня есть боковая панель, которая одинакова на всех страницах, кроме главной, и я использую этот код для захвата необходимых данных - теперь мне интересно, где правильно разместить код фактического сценария просмотра? - person jackocnr; 30.10.2012

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

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

"mypartial" %>

Обратите внимание, что вы не включаете символ подчеркивания во встроенный код ruby, когда указываете, какую часть отображать.

person cakeforcerberus    schedule 21.08.2009

Вы можете использовать Cells (просмотреть компоненты для Rails): http://cells.rubyforge.org/

person Jason Galvin    schedule 30.08.2010