2017-01-09 7 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

シェフのレシピを表示しますが、ここで何をしているかに問題があります。 "複数のIPアドレスにバインドするには、カンマ区切りの値のリストを入力してください。"だから、配列の代わりにコンマで区切られたIPを持つ文字列に属性を設定すれば、うまくいくでしょう。 – Tensibai

+0

私は '[10.10.10.10' + '、127.0.0.1]'のような入力を渡していますが、これは正しいですか? –

+0

いいえ、単に "10.10.0.10,127.0.0.1" 'IPを昏睡状態で区切った単純な文字列を渡してください... – Tensibai

答えて

0

あなたのコード、世界的なオブジェクトに変更を加えることに恐ろしくunmaintainableながら、結構です。コメントで何度か指摘されているように、問題はそのコードに入力しているデータです。

関連する問題