2017-01-09 5 views
-2

내 환경에서 mongodb3 요리 책 (요리사 슈퍼마켓에서 가져옴)을 사용하고 있습니다. 우리는 [10.10.0.10,127.0.0.1] 같은 mongos 템플릿에 대한 입력을 통과 적, 출력 파일이 잘못된 구문을 만들 때 :해시를 yaml로 변환하는 동안 요리사 루비 구문 오류가 발생했습니다.

PFB out put - 

net: 
port: 27017 
bindIp: ! '[10.10.0.10,127.0.0.1]' 

대신에만 [10.10.0.10,127.0.0.1]

의 대괄호 주위 !''있다

변환하려면 아래 함수를 사용하고 있습니다.

module Mongodb3Helper 
    def mongodb_config(config) 
    config.to_hash.compact.to_yaml 
    end 
end 

class Hash 
    def compact 
    inject({}) do |new_hash, (k, v)| 
     if v.is_a?(Hash) 
     v = v.compact 
     new_hash[k] = v unless v.empty? 
     else 
     new_hash[k] = v unless v.nil? 
     end 
     new_hash 
    end 
    end 
end 
+0

요리사에게 요리법을 보여주세요. 그러나 여기에서하는 일에 뭔가 잘못된 것이 있습니다. mongo 문서 인용 : "여러 IP 주소에 바인딩하려면 쉼표로 구분 된 값의 목록을 입력하십시오." 배열의 대신 쉼표로 구분 된 IP로 문자열을 특성으로 설정하면됩니다. – Tensibai

+0

'[10.10.10.10'+ ', 127.0.0.1]'와 같이 입력이 전달됩니까? –

+0

아니요, 단지 "10.10.0.10,127.0.0.1"'IP를 혼용으로 분리 한 간단한 문자열을 전달하십시오 ... – Tensibai

답변

0

코드는 전역 개체를 변경하여 무섭게 유지할 수 있지만 괜찮습니다. 의견에서 여러 번 지적했듯이 문제는 해당 코드에 입력하는 데이터입니다.