1

次のようなハッシュがあります。

{ 'key1' => 'value1', 'key2' => ['value2', 'value3']}

そして、次のような文字列を作成する必要があります。

key1/value1;key2/value2,value3

したがって、パターンはキー/値であり';'、セパレータとして使用されます。複数の値がある場合は、value1、value2','が区切り文字になります。

これが私がこれまでに持っているものです:

def build_string params
        url_params = ''
      params.each do |key, value|
        url_params += key
        url_params += '/'
        if value.kind_of? Array
          url_params += value.join(",") 
        else
          url_params += value
        end
        url_params += ';'
      end
      return url_params
    end

問題は、これが「;」を追加していることです。文字列の最後にあり、各ハッシュ要素のセパレーターとして使用したいだけです。をやろうと思ったのjoin(';')ですが、事前に残りの操作をどうすればいいのかわかりません。

4

1 に答える 1

4
params.map { |k, v| "#{k}/#{[v].flatten.join(',')}" }.join(';')
于 2013-11-12T05:30:20.563 に答える