2010-03-09 7 views
7

поэтому у меня много контроллеров и много видов.как сделать переменную видимым во всех представлениях - рельсы

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

Я попробовал несколько вещей в контроллере приложений (я думал, что он должен быть здесь?), Но никто из них не работал.

так как я подключить эти два: @random_quote.body (in view) и

@random_quote = Quote.find(:random) (в контроллере права?)

пчелы видели через все мое приложение?

Благодарим вас за ответы!

ответ

13

Сомневаюсь, что вам действительно нужно, чтобы он был доступен во всех взглядах. Но вы можете поставить @random_quote = Quote.find(:random) по методу, который вызывается с before_filter в вашем ApplicationController. Затем он будет доступен везде.

Как так:

before_filter :get_random_quote 
def get_random_quote 
    @random_quote = Quote.find(:random) 
end 
+0

это работает таким образом спасибо. Я также понял, что могу также поместить его в контроллер приложения (без фильтра). что на самом деле разница. лучше ли поставить его в помощник? еще раз спасибо! – user275447

+0

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

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