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 回答