2010-03-09 15 views
7

, więc mam wiele kontrolerów i wiele widoków.jak zrobić zmienną widoczną we wszystkich widokach - tory

Chcę, aby moja zmienna @random_quote była oceniana za każdym razem, gdy ładuje się widok.

Próbowałem kilku rzeczy w kontrolerze aplikacji (myślałem, że powinno być tutaj?), Ale żaden z nich nie działał.

więc jak mogę połączyć te dwa: @random_quote.body (in view) i

@random_quote = Quote.find(:random) (kontroler prawo?)

pszczoły postrzegane przez wszystkich aplikacji?

dziękuję za odpowiedzi!

Odpowiedz

13

Wątpię, czy rzeczywiście potrzebujesz, aby był dostępny we wszystkich widokach. Ale możesz umieścić @random_quote = Quote.find(:random) pod metodą, która jest wywoływana z before_filter w twoim ApplicationControllerze. Będzie wtedy dostępny wszędzie.

tak:

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

to działa w ten sposób dziękuję. zdałem sobie również sprawę, że mogę również umieścić go w kontrole aplikacji (bez wcześniejszego filtra). czym właściwie jest różnica. czy lepiej włożyć go do pomocy? dzięki jeszcze raz! – user275447

+0

Założono, że chcesz wygenerować wycenę raz na widok strony. Jeśli chcesz za każdym razem otrzymać nowy cytat, nie potrzebujesz filtra before_filter. –

Powiązane problemy