복붙노트

[RUBY-ON-RAILS] 어디 레일에서 글로벌 변수를 넣어 3

RUBY-ON-RAILS

어디 레일에서 글로벌 변수를 넣어 3

내 레일으로 environment.rb에 같은 2.3.8 응용 프로그램을 글로벌 변수를 넣어하는 데 사용 :

MAX_ALLOWD_ITEMS = 6

그것은 레일 3에서 작동하지 않는 것 나는 application.rb에 넣어 시도하고 도움이되지 않았다.

당신은 무엇을 제안합니까?

해결법

  1. ==============================

    1.라이언 제안 이미 서버를 다시 시작하려고 한 경우,이처럼 application.rb에 넣어보십시오 :

    라이언 제안 이미 서버를 다시 시작하려고 한 경우,이처럼 application.rb에 넣어보십시오 :

    module MyAppName
      class Application < Rails::Application
        YOUR_GLOBAL_VAR  = "test"
      end
    end
    

    그런 다음 당신은 당신의 컨트롤러, 뷰 또는 어디에서 네임 스페이스를 호출 할 수 있습니다 ..

    MyAppName::Application::YOUR_GLOBAL_VAR
    

    또 다른 대안은 settingslogic 같은 것을 사용하는 것입니다. settingslogic, 당신은 단지 YML 설정 파일 및 모델 (Settings.rb) 있음을 만들 config 파일을 가리 킵니다. 그럼 당신은 귀하의 레일 애플 리케이션 어디에서나 이러한 설정에 액세스 할 수 있습니다 :

    Settings.my_setting
    
  2. ==============================

    2.나는 보통 application_helper.rb로 이동 이는 모습입니다 :

    나는 보통 application_helper.rb로 이동 이는 모습입니다 :

    module ApplicationHelper
      def my_global_variable 
        my_global_variable = "Helloworld!"      
      end
    end
    

    그럼 난 함수로 my_global_variable 어디에 넣을 수 있습니다.

  3. ==============================

    3.당신은 진정으로 그것을 정의하는 경우 설정 / environment.rb에 당신이 말하는 것처럼, 당신의 문제를 복제 할 수있는 유일한 방법은 그것을 참조, 설정 / environment.rb에에 변수에 넣어 다음, 레일 서버를 사용하여 서버를 실행하는 것입니다 보기 또는 컨트롤러 어딘가에는 내 응용 프로그램의 특정 부분을로드하려고합니다.

    당신은 진정으로 그것을 정의하는 경우 설정 / environment.rb에 당신이 말하는 것처럼, 당신의 문제를 복제 할 수있는 유일한 방법은 그것을 참조, 설정 / environment.rb에에 변수에 넣어 다음, 레일 서버를 사용하여 서버를 실행하는 것입니다 보기 또는 컨트롤러 어딘가에는 내 응용 프로그램의 특정 부분을로드하려고합니다.

    나는 서버를 중지하고 다시 시작 다시보기 또는 컨트롤러가 다음 작동하는지에 액세스하려고하면. 나는 당신이 당신의 서버를 다시 시작하지 않은 생각한다.

  4. ==============================

    4.나는 일반적으로 글로벌 사이트 설정 모두와 내부 설정 / 초기화 / A YAML (YML) 파일을 만듭니다. 서버 당신이 무엇을 변경할 때마다 다시 시작해야합니다.

    나는 일반적으로 글로벌 사이트 설정 모두와 내부 설정 / 초기화 / A YAML (YML) 파일을 만듭니다. 서버 당신이 무엇을 변경할 때마다 다시 시작해야합니다.

  5. ==============================

    5.: 구체적으로 당신이 그렇게 같은 모듈 정의 내부의 변수를 정의하지 않은 경우, - environment.rb에 변수를 추가하는 솔루션은 Rails3에서 사실 일을한다면 나도 몰라

    : 구체적으로 당신이 그렇게 같은 모듈 정의 내부의 변수를 정의하지 않은 경우, - environment.rb에 변수를 추가하는 솔루션은 Rails3에서 사실 일을한다면 나도 몰라

    module MyConfig
      Max_ints = 5
    end
    

    방금 베어 정의로 그것을 포함하면 그냥 Max_ints을 사용할 수 없습니다. 아니면 적어도 그것이 내가이 실험 때 무슨 일이 있었 발견거야. 나는 또한 제안 / 폴더가 가능한 사용 편의성 측면에서 더 나은 솔루션 인 이니셜 라이저를 사용할 생각합니다. 레일에서 영구 변수를 참조하십시오

  6. from https://stackoverflow.com/questions/3598785/where-to-put-global-variables-in-rails-3 by cc-by-sa and MIT license