2011-08-25 3 views
1

Мне нужна переменная, которая будет доступна во всех контроллерах. Например, я пытался что-то вроде:Rails 3 - переменная доступна во всех контроллерах

class ApplicationController < ActionController::Base 
    @test = 'test string' 
    ... 
end 

и если бы я попытался показать содержание @test в application.html.erb, так что я получил пустой результат.

Одна возможности хранить строку session, но это, как я хотел бы использовать только в качестве последней возможности ...

Так что я хотел бы спросить вас - существует в Rails любого элегантную пути, как делать?

ответ

1

Вы можете использовать before_filter установить переменную:

class ApplicationController < ActionController::Base 
    before_filter :set_test 

    def set_test 
    @test = 'test string' 
    end 
end 

С этим может использования @test в application.html.erb.

+0

Удивительный! Работает отлично. – user1946705

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