【问题标题】:How to return Hash FQL Query from Ruby如何从 Ruby 返回哈希 FQL 查询
【发布时间】:2013-04-02 20:18:20
【问题描述】:

我是新来的,对 Ruby 非常陌生,所以我会尽力提出一个好问题。基本上,我正在尝试编写一个返回用户被邀请参加的 Facebook 事件的应用程序。很简单。问题是它不断返回这样的所有内容

[{"name"=>"SPB Presents An Evening With Demetri Martin"}], [{"name"=>"Say \"Pi\" to Passover!"}]

我只想要键的值。我尝试使用 ["name"] 并查看基本的 Ruby 教程,但每次都会遇到无数错误。

这是我的代码:

家庭控制器:

def index
if session["fb_access_token"].present?
    @fql = Koala::Facebook::API.new(session["fb_access_token"])
    @invites = @fql.fql_query("SELECT eid FROM event_member WHERE uid = me()")
end

def names(eid)
if session["fb_access_token"].present?
    @fql = Koala::Facebook::API.new(session["fb_access_token"])
    @fql.fql_query("SELECT name FROM event WHERE eid = #{eid}")
end
end

主页视图

<% if @invites %>
        <% for invite in @invites %>
                <p><%=h names(h invite["eid"])%></p>
<% end >
<% end >

非常感谢您的帮助!另外,如果有人有更好的方法来构建它,那么我不必在视图中做太多工作,或者如何为控制器中的每个循环做得更好,那也很好!

【问题讨论】:

    标签: ruby facebook hash facebook-fql koala


    【解决方案1】:

    如果有人好奇,我想出了我的问题。 fql 查询将所有内容存储在一个数组中,其中包含一个“位置”哈希,因此每次我显示查询时它都会显示该数组。这是我的解决方法:

    def names(eid)
      if session["fb_access_token"].present?
      @fql = Koala::Facebook::API.new(session["fb_access_token"])
      @hashmap = @fql.fql_query("SELECT name FROM event WHERE eid = #{eid}")
      @name = @hashmap[0]["name"]
    

    现在我在索引 0 处提取数组中的第一个对象并使用键“名称”。像魅力一样工作!

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 1970-01-01
      • 2019-10-24
      • 2011-05-19
      • 2016-03-02
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      相关资源
      最近更新 更多