Динамическая боковая панель с макетом Rails - PullRequest
7 голосов
/ 18 августа 2010

Например, я хочу, чтобы на моей боковой панели было несколько динамических материалов. Использование другого метода приведет меня к вводу кодов запросов в View, что не очень хорошая идея. Я хотел бы сохранить любой запрос в моем контроллере.

В настоящее время, как я знаю, есть несколько ff. Метод:

Отображение разделяемой части -> Нет места для запроса

render :partial => "shared/sidebar"

Содержание для -> Дополнительные детали в комментарии

<%= yield :sidebar %>
<% content_for :sidebar do %>
  <a href="http://www.netscape.com">Netscape</a><br>
  <a href="http://www.lycos.com">Lycos</a><br>
  <a href="http://www.walmart.com">Wal Mart</a><br>
<% end %>

3-й - это запись непосредственно в файл макета.

Так, как я должен заставить это работать?

Ответы [ 2 ]

9 голосов
/ 18 августа 2010

Если вы хотите это в каждом представлении, вы можете поместить метод, который заполняет необходимые данные, в application_controller и использовать before_filter для его запуска.

before_filter :load_sidebar

def load_sidebar
  @data = Thingy.find(:all)
end

Затем ваш частичный элемент или элемент content_for проверяет наличие @data и процессов.

1 голос
/ 25 мая 2012

Если вы хотите уменьшить количество кода в application_controller.rb, вы можете рассмотреть возможность использования гема Cells .

Это позволит вам определить ваш «запрос» в отдельном контроллере ячейки, и вы отобразите содержимое для него, используя что-то вроде render_cell :sidebar, :myquery внутри вашего представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...