如何将哈希元素添加到另一个哈希?

时间:2015-09-08 00:54:12

标签: ruby-on-rails ruby hash

我似乎无法向哈希添加项目。

我有以下传入哈希的方法,目的是传递原始哈希值。我已经验证了密钥是一个字符串,其他两个元素是浮点数。 b_name,lat和lng都在我请求时打印到日志。

y = (3.0*x)+(6.0*pi)*((x**3.0+x**(7.0/2.0)))+11.0/3.0

以下是我遇到的错误:

def construct_paint_hash(list)
    full_list = Hash.new
    num = 100
    list.each do |thing|

        puts num
        b_name = thing["name"]
        puts b_name
        lng = thing["longitude"]
        lat = thing["latitude"]
        full_list["#{b_name}"]=[lng, lat]
        # full_list[:dsfsd] = "dsfdsfds"
        num +=100 
    end
    return full_list
end

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您的代码似乎没问题,但您可以使用以下代码snippet。我假设你的list params如下

list = [{"name" => "dhaka", "longitude" => 23.44, "latitude" => 24.55}, {"name" => "usa", "longitude" => 23.44, "latitude" => 24.55}]

然后重写您的construct_paint_hash,如下所示

def self.construct_paint_hash(list)
    data = list.collect { |l| {l["name"] => [l["longitude"], l["latitude"]]} }
    return data.inject(:merge)
end