2014-10-01 69 views
-1

我已经连接好了一切,它看起来很棒。但是我在代码中缺少一些东西,因为我无法从返回的Hash中获取值。这主要是在轨道上使用考拉Facebook的宝石。从轨道中散列收集变量

到目前为止我有:

def self.pull 

    facebook = user.facebook.get_connection("me", "home") 
    facebook.each do |story| # Each story is itself a Hash 
     unless exists?(fb_id: story.id) 
      NewStory.create({fb_id: story.id, fb_from_username: story.from.username, user_id: User.current, storystatus = 'new'}) 
     end 
    end 
end 

运行pull我不断收到错误undefined method 'id' for #<Hash:0x007fc8f2784278> ...我知道它Hash但我从来没有尝试访问的Hash

内容,返回哈希的示例如下所示:

{ 
"id"=>"650490971730768_650591128387419", 
"from"=>{ 
      "id"=>"650490971730768", 
      "name"=>"Kathy Singer" 
      } 
... 
} 

试图从抓住id然后我将移动到from -> idfrom -> user等。

回答

1

与ActiveRecord对象属性不同,您不能使用.运算符访问哈希值。

你应该使用Hash#[]

unless exists?(fb_id: story['id']) 
+0

感谢抱歉愚蠢的问题访问:) – user2419316 2014-10-01 14:20:49