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