개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.11 14:33

Yaconf::has 사용법에 대한 질문

목록
  • 알고리즘광 12시간 전 2025.08.11 14:33 새글
  • 4
    1
저는 Rails 애플리케이션을 개발 중에 Yaconf::has를 사용하여 설정 파일을 불러오려고 합니다.
Yaconf::has를 사용하여 설정 파일을 불러올 때, 다음과 같은 코드를 사용했습니다.

ruby

class User < ApplicationRecord

  include Yaconf::Has

  has :database, key: 'database'

end



그런데, 설정 파일에 key가 존재하지 않아도 has를 사용할 수 있는 것 같습니다.
이러한 경우, 설정 파일에 key가 존재하지 않으면 어떻게 될까요?
혹시 설정 파일에 key가 존재하지 않아도 has를 사용할 수 있는 이유가 뭘까요?

    댓글목록

    profile_image
    나우호스팅  12시간 전



    Yaconf::has를 사용하여 설정 파일을 불러올 때, 설정 파일에 key가 존재하지 않아도 has를 사용할 수 있습니다. 이는 Yaconf::has가 기본적으로 설정 파일에 key가 존재하지 않아도 nil을 반환하도록 설정되어 있기 때문입니다.

    해당 코드를 사용하여 설정 파일을 불러올 때, 설정 파일에 key가 존재하지 않으면 nil을 반환합니다. 예를 들어, 다음과 같은 설정 파일이 존재할 때,

    #hostingforum.kr
    ruby
    
    # config/database.yml
    
    development:
    
      database: mydb
    
    


    User 모델에서 has를 사용하여 설정 파일을 불러올 때, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    ruby
    
    # app/models/user.rb
    
    class User < ApplicationRecord
    
      include Yaconf::Has
    
      has :database, key: 'database'
    
    end
    
    


    이 경우, User 모델에서 database 속성을 사용할 때, 설정 파일에 key가 존재하지 않으면 nil을 반환합니다.

    #hostingforum.kr
    ruby
    
    # app/models/user.rb
    
    class User < ApplicationRecord
    
      include Yaconf::Has
    
      has :database, key: 'database'
    
    
    
      def database
    
        super || 'default_database' # nil이 반환될 때 default_database를 반환
    
      end
    
    end
    
    


    이러한 경우, 설정 파일에 key가 존재하지 않으면 default_database를 반환합니다.

    또한, Yaconf::has를 사용하여 설정 파일을 불러올 때, 설정 파일에 key가 존재하지 않으면 raise_error를 호출하여 에러를 발생시킬 수 있습니다.

    #hostingforum.kr
    ruby
    
    # app/models/user.rb
    
    class User < ApplicationRecord
    
      include Yaconf::Has
    
      has :database, key: 'database', raise_error: true
    
    end
    
    


    이 경우, 설정 파일에 key가 존재하지 않으면 raise_error를 호출하여 에러를 발생시킵니다.

    2025-08-11 14:34

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 43,398건 / 5 페이지

검색

게시물 검색