Как вернуть Hash FQL Query из Ruby

Я новичок здесь и действительно новичок в Ruby, поэтому я сделаю все возможное, чтобы задать хороший вопрос. По сути, я пытаюсь написать приложение, которое возвращает события Facebook, на которые был приглашен пользователь. Довольно просто Проблема в том, что он продолжает возвращать все, как это

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

Я просто хочу значение ключа. Я попытался использовать ["name"] и посмотреть базовый учебник по Ruby, но каждый раз получал множество ошибок.

Вот мой код:

HomeController:

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

Home View

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

Заранее большое спасибо за вашу помощь! Также, если у кого-то есть лучший способ сделать это, чтобы мне не приходилось так много работать с представлениями или как делать лучше для каждого цикла в контроллере, это тоже было бы неплохо!

1 ответ

Решение

Я понял свою проблему, если кому-то интересно. Запрос fql хранит все в массиве с одним хешем "location", поэтому каждый раз, когда я отображал запрос, он отображал массив. Это было мое исправление:

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 и использую ключ "имя". Работал как шарм!

Другие вопросы по тегам