логика ruby ​​on rails для частичного в макете - PullRequest
7 голосов
/ 21 августа 2009

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

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

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

Ответы [ 3 ]

8 голосов
/ 21 августа 2009

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

class ApplicationController < ActionController::Base
  before_filter :load_sidebar_data

protected
  def load_sidebar_data

  end
end

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

1 голос
/ 31 августа 2010

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

1 голос
/ 21 августа 2009

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

Затем, по вашему мнению, используйте следующий код для включения частичного

"mypartial"%>

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

...