Как установить переменную, используемую макетом приложения - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть список объявлений, который должен отображаться на всех страницах моего сайта, поэтому я добавил этот список в макет приложения.Примерно так:

<div>
    <%= render @ads %>
<div>

Я хочу, чтобы список объявлений извлекался из БД до отображения макета приложения, но не при использовании другого макета, поэтому я предполагаю, что before_filter не является решением, верно?

Где мне поставить этот код?

@ads = Ad.all

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 21 декабря 2011

Используйте компоненты ячейки , если вы ищете тестируемое и стабильное решение.

2 голосов
/ 21 декабря 2011

Учитывая, что список объявлений должен отображаться на каждой странице сайта, то что-то вроде этого должно работать:

class ApplicationController < ActionController::Base
  before_filter :preload_ads


  private

  def :preload_ads
    @ads = Ad.all
  end
end
1 голос
/ 21 декабря 2011

если вы уверены, что он будет использоваться только в этом единственном макете (и ни в каком другом), вы можете просто загрузить его в макет:

<div>
    <%= render Ad.all %>
<div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...