나는 루비 보석을 쓰고있어 사용자가 자신의 yaml 파일 설정을 사용하게하고 싶지만 user_config.yml이 레일스 설정에 있는지 테스트하는 법을 모르겠다. 통로.
이 파일이 config 경로에있는 경우에만 user_config.yml을 사용하고 싶습니다.레일 설정 경로 yaml에 접근하는 방법
답변
Rails.root
(또는 이전 버전의 레일에서는 RAILS_ROOT
)은 응용 프로그램 루트의 경로를 제공합니다. 거기에서 관심있는 파일이 있는지 확인할 수 있습니다.
path = File.join(Rails.root, "config", "user_config.yml")
if File.exists?(path)
# do something
end
Array 유형의 $ LOAD_PATH 변수를 사용하여 Rails App의로드 경로에 액세스 할 수 있습니다.
따라서
if $LOAD_PATH.include?('/path/where/user/should/put/their/user_config.yml')
# EDIT
config_options = File.new('rails_app/config/user_config.yml', 'r')
else
# EDIT
config_options = File.new('path/to/default/config.yml', 'r')
end
Ruby File class라는 #exists 또 다른 유용한 방법도있다? 물론 파일이 있는지 확인합니다. 자세한 내용은 File class docs를 참조하십시오.
희망이 시작됩니다. 귀하의 질문은 다소 모호했습니다. 도움이 더 필요하면 더 자세한 정보를 보내주십시오.
죄송합니다. 설명하기가 어려웠습니다. 구성 경로 (rails_app/config/user_config.yml)에 user_config.yml이 있으면 어떻게 파일에 액세스 할 수 있습니까? 이런 식으로 사용할 수 있습니까 : YAML.load_file ("# {$ LOAD_PATH} /config/user_config.yml")? – squiter
원래의 대답에서 $ LOAD_PATH 변수는 배열이므로 문자열 보간을 사용하고 싶지는 않습니다. 내 대답에서 파일로드에 대한 제안 사항에 대한 편집 내용을 참조하십시오. –
@BrunnoDosSantos yaml에서 해시를 얻으려면 실제로 YAML 모듈을 사용할 수 있습니다. 'configs_hash = YAML.load_file ("path/to/config.yml") [RAILS_ENV]','RAILS_ENV'는 'development', 'test'등입니다. – cdesrosiers
- 1. MySQL의 YAML에 대한 쿼리
- 2. 레일 3 경로 및 모델 설정
- 3. ZF2에서 캐싱에 접근하는 방법
- 4. -hd 파일에 접근하는 방법
- 5. yaml에 어려움을 겪고 있습니다.
- 6. YAML에 상속이 가능합니까?
- 7. 크기가 SVG에 접근하는 방법
- 8. 메시지 송수신에 접근하는 방법
- 9. 레일 3 경로 : '쇼'동작과의 충돌을 피하는 방법?
- 10. 루비 레일 경로 및 경로
- 11. 레일 : 라우팅 경로 도우미
- 12. 요청 당 경로 설정 전환
- 13. 레일 경로 질문
- 14. HTML이나 XML을 어떻게 YAML에 저장합니까?
- 15. 경로 일치 없음 - 레일
- 16. Quartz Job에서 EJB에 접근하는 방법
- 17. 시각 온도계 만들기에 접근하는 방법
- 18. 다중 사이트 인증에 접근하는 방법
- 19. 레일 3 토큰과 일치하는 경로
- 20. 간단한 레일 3 호선이 실패한다 - 어떤 경로 내 설정/routes.rb에서
- 21. 레일 사용자 정의 경로 때 테스트를 찾았지만, 설정/routes.rb에서
- 22. 레일 경로 업데이트는 회원 ID없이
- 23. 레일 3 경로 : 모델
- 24. 레일 경로 질문
- 25. 레일 경로 및 인증?
- 26. 레일 경로 도우 불일치
- 27. 레일 특정 경로 제거
- 28. 레일 image_tag 경로
- 29. 서버 접두사와 레일 경로
- 30. 레일 - 구성 경로 변경
요즘에는'Rails.root.join ('config', 'user_config.yml')' – Confusion