-1

我对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*"},
4

3 回答 3

2

首先。这是Hash 对象的链接。我们不需要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
于 2012-05-18T20:09:48.600 回答
1

看起来你对如何使用块感到困惑。

in_msg.updateComments.each do |key, value|
   # code here...
end

或者

in_msg.updateComments.each {|key, value| code_here }

更新:现在您发布了数据......看起来您有几个嵌套的哈希和数组。我建议找到一个关于 ruby​​ 数组和 ruby​​ 哈希的好教程。

于 2012-05-18T20:02:12.247 回答
1

我相信您正在寻找的语法是这样的:

in_msg.updateComments.map { |c| 
  c.each  do |comment| 
     # do stuff for each comment
  end
}
于 2012-05-18T20:03:39.613 回答