从rails中的hash收集变量

时间:2014-10-01 05:21:36

标签: ruby-on-rails ruby facebook hash

我已经连接了一切,看起来很棒。但是,我在代码中遗漏了一些内容,因为我无法从返回的Hash中获取值。这主要是在rails中使用Koala Facebook gem。

到目前为止,我已经:

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 个答案:

答案 0 :(得分:1)

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

您应该使用Hash#[]

访问它
unless exists?(fb_id: story['id'])