2011-07-30 4 views
0

데이터베이스의 값을 변수에 저장해야하며 컨트롤러의 모든 동작에서이 변수에 액세스해야합니다. ,레일 3 - 컨트롤러의 생성자 동작?

  • 내가 application_controller.rb에서 변수에 값을 저장하려고

에 대한

  • 접촉
  • 블로그 :

    예를 들어, 나는 제어기 (3 개) 행동을 가지고 home이 그러나 이것은 효과가 없었습니다.
    어떻게하면됩니까?

  • +1

    컨트롤러와 액션에서 공유 할 값을 유지하는 것에 대해 이야기하고 있습니까? currently_logged_in_user? 죄송합니다, 귀하의 영어를 이해하기 위해 애 쓰고 있습니다. – jamesc

    +0

    예, 당신이 쓴 것 같아요. – user1946705

    +0

    대답을 추가하겠습니다. – jamesc

    답변

    2

    이것은 지속성에 관한 것입니다. 사실 웹 사이트를 돌아 다니기 위해 쿠키를 저장하여 데이터를 유지합니다. Rails는 세션 해시라고하는 편리한 방법을 제공합니다. 그냥

    를 호출하는 변수를 검색하고자 할 때 또한 단순히 그런

    session[:some_variable] = some_variable 
    

    전화 당신이 저장하고자하는 값을 얻을 때 (이것은 또한 세션 해시) 를 플래시 해시를 사용할 수 있습니다

    some_variable = session[:some_variable] 
    

    모든 컨트롤러 액션이 작업을 수행하려면 다음 before_filter가 유용 할 수 있습니다 여기에 읽기

    당신에게 의미가 무언가에 some_variable 교체 about_filters about http://apidock.com/rails/ActionController/Filters/ClassMethods/before_filter

    큰 개체 또는 개체 배열을 세션에 저장하지 마십시오. active_record 객체에 대한 참조를 유지해야하는 경우 레코드의 ID 만 저장하면 필요하면 찾기를 사용하여 해당 레코드를 검색 할 수 있습니다.

    1

    모든 컨트롤러에서 특정 변수에 액세스하려면 다음을 수행하십시오. 응용 프로그램 컨트롤러에

    :

    before_filter :set_my_variables 
    
    private 
    def set_my_variables 
        @variable = MyModel.find(YOUR_CONDITION) 
    end 
    

    그리고 예를 들어, 홈 컨트롤러, 당신은 @variable에 액세스 할 수 있습니다

    .

    희망이 도움이됩니다.

    +0

    질문은 세션 사용과 관련된 지속성에 관한 것 같아요. – jamesc

    +0

    yah, 나는 그의 질문을 이해하지 못했다 : ... / – Arkan

    관련 문제