[RUBY-ON-RAILS] 레일에서 사용자 지정 구성 변수를 정의하는 방법
RUBY-ON-RAILS레일에서 사용자 지정 구성 변수를 정의하는 방법
나는이 응용 프로그램을 레일 방법과 컨트롤러에 액세스하기에 나는이 구성 파일에서 upload_directory을 정의 할 수 싶어 예를 들어, 사용자 정의 구성 변수를 추가하는 방법 궁금 해서요은 development.rb 말 중 하나에 액세스 그것을 할 수있을 내 컨트롤러.
둘째 난 내가 내 레일 응용 프로그램에서 초기화 어떻게 내가 값에 액세스 어떻게 내가 정의하는 S3 액세스, 비밀 키와 YAML 파일을 추가하고 싶다면, 내 응용 프로그램에 업로드 S3 지원을 계획했다 그 설정 파일입니다.
해결법
-
==============================
1.업데이트 1
업데이트 1
매우 추천 : 나는이 제공하는 세밀한 제어를 위해 요즘 레일 구성 보석으로 갈거야.
갱신 2
짧은 솔루션을 원한다면, 아래 잭 프랫의 답변을 확인합니다.
내 원래의 대답은 아래 여전히 작동하지만,이 대답은 이제 구식이된다. 나는 업데이트 1과 2에서 보는 것이 좋습니다.
원래 답변 :
라이언 베이츠에 의해 "YAML 구성 파일"스크린 캐스트를보고 빠른 솔루션의 경우, 매우 도움이 될 것이다.
요약해서 말하자면:
# config/initializers/load_config.rb APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env] # application.rb if APP_CONFIG['perform_authentication'] # Do stuff end
-
==============================
2.레일 (3)에서, 애플리케이션 특정 맞춤 구성 데이터는 애플리케이션 구성 객체에 위치 될 수있다. 구성은 초기화 파일 또는 환경 파일에 할당 할 수 있습니다 - 말을 주어진 애플리케이션 MyApp를 위해 :
레일 (3)에서, 애플리케이션 특정 맞춤 구성 데이터는 애플리케이션 구성 객체에 위치 될 수있다. 구성은 초기화 파일 또는 환경 파일에 할당 할 수 있습니다 - 말을 주어진 애플리케이션 MyApp를 위해 :
MyApp::Application.config.custom_config_variable = :my_config_setting
또는
Rails.configuration.custom_config_variable = :my_config_setting
설정을 읽으려면, 간단하게 설정하지 않고 구성 변수를 호출
Rails.configuration.custom_config_variable => :my_config_setting
UPDATE 레일 4
레일 4 년이 이것에 대한 새로운 방법 => http://guides.rubyonrails.org/configuring.html#custom-configuration
-
==============================
3.레일 3.0.5에서, 다음과 같은 접근 방법은 나를 위해 일한 :
레일 3.0.5에서, 다음과 같은 접근 방법은 나를 위해 일한 :
설정 / 환경 / development.rb, 쓰기에
config.custom_config_key = :config_value
값 custom_config_key 후 사용하여 다른 파일에서 참조 할 수 있습니다
Rails.application.config.custom_config_key
-
==============================
4.이 레일 3.1에서 작동 :
이 레일 3.1에서 작동 :
에서 설정 / environment.rb에 (또는 설정 / 환경 / .. 특정 환경 타겟팅)
YourApp::Application.config.yourKey = 'foo'
이 컨트롤러 나이 같은 전망에 액세스 할 수 있습니다 :
YourApp::Application.config.yourKey
(YourApp는 응용 프로그램 이름으로 대체해야합니다.)
참고 : 당신이 키를 설정의 여지가 그렇다면, 루비 코드, 당신은이 작업을 수행 할 수 있습니다 :
에서 설정 / environment.rb에 :
YourApp::Application.configure do config.something = foo config..... config.... . config.... end
-
==============================
5.당신은 YAML 파일에 사용자 정의 변수를 넣어 가정 :
당신은 YAML 파일에 사용자 정의 변수를 넣어 가정 :
# config/acme.yml development: :api_user: 'joe' :api_pass: 's4cret' :timeout: 20
를로드 할 초기화를 만듭니다
# config/initializers/acme.rb acme_config = Rails.application.config_for :acme Rails.application.configure do config.acme = ActiveSupport::OrderedOptions.new config.acme.api_user = acme_config[:api_user] config.acme.api_pass = acme_config[:api_pass] config.acme.timeout = acme_config[:timeout] end
이제 어디서나 앱에 당신과 같이이 값에 액세스 할 수 있습니다 :
Rails.configuration.acme.api_user
절정이 acme.yml을로드하고 올바른 환경을 사용합니다 : Rails.application.config_for가 편리합니다.
-
==============================
6.레일 4.2 이후 추가 보석없이, 당신은 설정 / hi.yml 단순히 Rails.application.config_for를 사용하여로드 할 수 있습니다 : 안녕하세요.
레일 4.2 이후 추가 보석없이, 당신은 설정 / hi.yml 단순히 Rails.application.config_for를 사용하여로드 할 수 있습니다 : 안녕하세요.
예를 들면 :
-
==============================
7.난 그냥 레일 4.2의 최신 멋진 물건이 업데이트 싶어, 당신은 지금 당신의 설정 / ** / *의 내부에서이 작업을 수행 할 수 RB 파일을. :
난 그냥 레일 4.2의 최신 멋진 물건이 업데이트 싶어, 당신은 지금 당신의 설정 / ** / *의 내부에서이 작업을 수행 할 수 RB 파일을. :
config.x.whatever.you.want = 42
... 그리고이 같은 앱에서 사용할 수 있습니다 :
Rails.configuration.x.whatever.you.want
자세한 내용은 여기를 참조하십시오 : http://guides.rubyonrails.org/configuring.html#custom-configuration
-
==============================
8.정확히 그 일이 깔끔한 보석을 체크 아웃 : https://github.com/mislav/choices
정확히 그 일이 깔끔한 보석을 체크 아웃 : https://github.com/mislav/choices
중요한 데이터는 오픈 소스 프로젝트에 노출되지 않습니다이 방법
-
==============================
9.나는 YAML 설정에 대한 간단한 플러그인을 만들어 : Yettings를
나는 YAML 설정에 대한 간단한 플러그인을 만들어 : Yettings를
그것은 khelll의 대답의 코드와 비슷한 방식으로 작동하지만, 당신은이 YAML 설정 파일을 추가해야합니다 :
app/config/yetting.yml
플러그인은 동적으로과 같이 앱에서 클래스 메소드로 YML 설정에 액세스 할 수있는 클래스를 만듭니다 :
Yetting.your_setting
당신은 고유 한 이름으로 여러 설정 파일을 사용하려는 경우 또한,이 같은 응용 프로그램 / 설정 내부의 하위 디렉토리에 배치 할 수 있습니다 :
app/config/yettings/first.yml app/config/yettings/second.yml
그럼 당신은 같은 값에 액세스 할 수 있습니다 :
FirstYetting.your_setting SecondYetting.your_setting
또한 환경에 따라 오버라이드 (override) 할 수있는 기본 설정을 제공합니다. 또한 YML 파일 내부에 ERB를 사용할 수 있습니다.
-
==============================
10.정말 settingslogic 보석을 좋아한다. 설정 및 사용이 매우 편리합니다.
정말 settingslogic 보석을 좋아한다. 설정 및 사용이 매우 편리합니다.
https://github.com/binarylogic/settingslogic
-
==============================
11.당신에게 Heroku를 사용하거나 환경 변수로 응용 프로그램 설정을 유지할 필요가있는 경우 피가로 보석은 많은 도움이 될 것입니다.
당신에게 Heroku를 사용하거나 환경 변수로 응용 프로그램 설정을 유지할 필요가있는 경우 피가로 보석은 많은 도움이 될 것입니다.
-
==============================
12.나는 필요가 웹 인터페이스를 통해 변경 될 것을 전역 구성 값 레일-설정을 사용하고 싶다.
나는 필요가 웹 인터페이스를 통해 변경 될 것을 전역 구성 값 레일-설정을 사용하고 싶다.
-
==============================
13.우리가 직장에서 일을 시작했습니다 뭔가가 ActiveSupport 정렬 된 해시입니다
우리가 직장에서 일을 시작했습니다 뭔가가 ActiveSupport 정렬 된 해시입니다
환경이 예를 들어, 파일 내부는 깔끔하게 구성을 정의 할 수 있습니다 어떤
config.service = ActiveSupport::OrderedOptions.new config.service.api_key = ENV['SERVICE_API_KEY'] config.service.shared_secret = ENV['SERVICE_SHARED_SECRET']
-
==============================
14.나는 방법 모두에서 응용 프로그램에서 구성을 처리하는 좋은 방법을 제안한다. 세 가지 기본 규칙이 있습니다 :
나는 방법 모두에서 응용 프로그램에서 구성을 처리하는 좋은 방법을 제안한다. 세 가지 기본 규칙이 있습니다 :
더이 링크를 따라 개요를 설명했습니다하려면 적절한 방법으로 구성 레일
from https://stackoverflow.com/questions/1450285/how-to-define-custom-configuration-variables-in-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 경고 : PATH에서 안전하지 않은 세계 쓰기 가능한 디렉토리 / usr / 지방 / 빈 모드 040777 (0) | 2020.02.05 |
---|---|
[RUBY-ON-RAILS] 3 개 형태의 레일에 루비의 _snowman PARAM은 무엇인가? (0) | 2020.02.05 |
[RUBY-ON-RAILS] 어떻게 "꽤"레일에 루비 내 JSON 출력을 포맷 할 수 있습니다? (0) | 2020.02.05 |
[RUBY-ON-RAILS] 구조, 시작과 루비 확인? (0) | 2020.02.05 |
[RUBY-ON-RAILS] 어떻게 루비에서 객체의 전체 복사본을 만드는 방법? (0) | 2020.02.05 |