I had something like the following (though with more values):
h = OrderedHash.new()
h[:a] = {:a => 1}
h[:b] = {:b => 2}, # note the trailing comma - oops
h[:c] = {:c => 3}
and started getting errors telling me that h[:b] was an array, when I was expecting it to be a hash...
Here's what's actually happening (via irb):
>> a = {:a => 1}
=> {:a=>1}
>> b = {:b => 2},
?> c = {:c => 3} # still part of the previous statement
=> [{:a=>1}, {:c=>3}] # so we end up with an array
Note to self: beware trailing commas
No comments:
Post a Comment