我对Ruby很新。我正在拼凑这样的东西:
in_msg.updateComments.map{|c| c.each} do |comment|
in_msg.updateComments
是哈希。
但是我收到了错误:
SyntaxError: /Users/alexgenadinik/projects/cmply/cmply-app/app/models/linked_in_update.rb:65: syntax error, unexpected kDO, expecting kEND
in_msg.updateComments.map{|c| c.each} do |comment|
知道如何正确地做到这一点吗?
数据如下:
"updateComments"=>{"values"=>[{"comment"=>"Sweet", "person"=>{"siteStandardProfileRequest"=>{"url"=>"http://www.linkedin.com/profile?viewProfile=&key=23676551&authToken=FHXz&authType=name&trk=api*a140290*s148640*"},
答案 0 :(得分:2)
首先。这是Hash object的链接。我们不需要map
方法来迭代哈希。通过Hash进行的迭代是使用each
,each_pair
,each_key
,each_value
方法完成的。请参阅先前提供的用法和语法链接。
in_msg.updateComments.each do |key, value|
p key #prints "values" string on first loop
value.each do |k, v|
p k #prints "comment", "person"
p v #prints "Sweet", "{"siteStandardProfileRequest"=>{"url"=>"http://www.linkedin.com/profile?viewProfile=&key=23676551&authToken=FHXz&authType=name&trk=api*a140290*s148640*"}"
end
end
答案 1 :(得分:1)
看起来你对如何使用积木感到困惑。
in_msg.updateComments.each do |key, value|
# code here...
end
OR
in_msg.updateComments.each {|key, value| code_here }
更新:现在你发布了数据......看起来你有几个嵌套的哈希和数组。我建议在ruby数组和ruby哈希上找到一个很好的教程。
答案 2 :(得分:1)
我相信您正在寻找的语法是:
in_msg.updateComments.map { |c|
c.each do |comment|
# do stuff for each comment
end
}