Ruby on rails ActiveRecord查询工作不正常

Ruby on rails ActiveRecord查询工作不正常,ruby-on-rails,facebook,activerecord,facebook-fql,Ruby On Rails,Facebook,Activerecord,Facebook Fql,我正在使用考拉api查询Facebook @result = @graph.fql_query("select uid, name, pic_square FROM user WHERE is_app_user AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me())") 我想通过查询我的ActiveRecords“shot”来丢弃object@result的一些实例: 我有以下问题。似乎: 1.y1始终设置为有效,但程序不会崩溃 2.如果我

我正在使用考拉api查询Facebook

@result = @graph.fql_query("select uid, name, pic_square FROM user WHERE is_app_user AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me())")
我想通过查询我的ActiveRecords“shot”来丢弃object@result的一些实例:

我有以下问题。似乎: 1.y1始终设置为有效,但程序不会崩溃 2.如果我将y1替换为y1[0],程序将崩溃


如果有人给我指点,我将不胜感激。谢谢

我终于找到了答案:f3[“uid”]。\s。F3[“uid”]需要转换为字符串。谢谢@Anthony的帮助

此外,在rails控制台中,y1的行为正确,它可能意味着
,其中
不返回任何内容,即空数组。试图访问第一个元素会使所有内容崩溃。记录您的SQL请求,以确保它们会返回something@AnthonyAlberto谢谢,我会调查的@但似乎y1产生的是真的。如果“Where”返回零,那么如果y1生成false,是否会返回零?谢谢@你说得对,它什么也没带来。但我不明白为什么。此外,如果它没有带来任何回报,那么为什么“IfY1”会产生真的结果呢?另外,xUid、xName和xPicture也可以获得正确的值。再次感谢!
@result.each do |f3|
     y1 = Shoot.where(:uid1 => f3["uid"])
     @y2 = y1
     if y1
       xtUid = f3["uid"]
       xName = f3["name"]
       xPicture = f3["pic_square"]
       ....
     end
     ...
end