반응형
Rails 3에서 초기화 프로그램의로드 순서를 어떻게 변경하나요?
yaml 파일에서 구성 설정을로드하는 이니셜 라이저가 있습니다. 다른 초기화 프로그램에서이 설정을 사용해야합니다. 설정이 필요한 이니셜 라이저가 설정을 볼 수 없습니다. 내가 생각하는 것은 설정이 너무 늦게로드된다는 것입니다. 내 구성 이니셜 라이저가 먼저로드된다는 것을 어떻게 보장합니까? 이니셜 라이저가 다른 것에 의존하는 것과 같은 un-rails입니까?
감사!
이니셜 라이저의 이름을로 변경하면 01_name.rb이전에 알파벳순으로로드됩니다.
편집하다
구성에 대한 공식 Rails 가이드 를 인용하려면 ( zetetic 팁에 감사드립니다 ) :
이니셜 라이저에 순서 종속성이있는 경우 이름을 지정하여로드 순서를 제어 할 수 있습니다. 예를 들어 01_critical.rb는 02_normal.rb보다 먼저로드됩니다.
다음과 같이 첫 번째 require 문 바로 뒤에 구성 코드를 config / environment.rb 파일에 넣으십시오.
# Load the rails application
require File.expand_path('../application', __FILE__)
# Load global configurations
CONFIG = Hashie::Mash.new YAML.load_file(Rails.root.join("config", "application.yml"))[Rails.env]
# Initialize the rails application
RailsSetup::Application.initialize!
가이드에서 이니셜 라이저 파일 이름 앞에 숫자를 추가하도록 권장하지만, 그것은 추악 해 보입니다. 또 다른 방법은 제공된 초기화 후크를 활용하는 것입니다. 참조 http://guides.rubyonrails.org/configuring.html#initialization-events를
예
# application.rb
module YourApp
class Application < Rails::Application
config.before_initialize do
# initialization code goes here
end
end
end
require_relative를 사용하여 하나의 파일이 먼저로드되었는지 확인하십시오.
# aaa.rb
require_relative 'bbb'
# ... code using values from bbb.rb ...
반응형
'Program Club' 카테고리의 다른 글
| mysql 날짜 시간 비교 (0) | 2020.12.03 |
|---|---|
| URL에서 바이트 배열로 이미지 (0) | 2020.12.03 |
| 왜 "할당되지 않은 로컬 변수 사용"오류를 컴파일합니까? (0) | 2020.12.03 |
| iOS6 viewDidUnload 사용되지 않음 (0) | 2020.12.03 |
| git commit 중지됨-트리 빌드 오류 (0) | 2020.12.03 |