首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails 3、ruby、jquery令牌输入和考拉

rails 3、ruby、jquery令牌输入和考拉
EN

Stack Overflow用户
提问于 2011-08-24 14:00:51
回答 1查看 336关注 0票数 0

我需要一些帮助来弄清楚我正在处理的一个模块。如前所述,我使用Rails3,jquery token.input和koala进行facebook的集成。我试图完成的是从facebook获取用户的所有朋友,并使用jquery tokeninput选择特定的朋友。用户单击submit后,好友的in将保存在数据库中。ryan在他精彩的屏幕造型中向我们展示了如何搜索数据库,但我遇到的情况是在用户界面中通过数组(二维)进行搜索和更新。

控制器代码:

代码语言:javascript
复制
def index 
  @graph = Koala::Facebook::GraphAPI.new(access_token)
  @friends = @graph.get_connections("me","friends")
  # now the @friends contains all the friends of the user, how do i get something
  # like to work Friends.where("%params[:q]%") on @friends

  respond_to do |format| 
    format.html
    format.json {:render :json => @friends} 
  end 
end 

如何在数组中进行搜索现在我可以这样做

代码语言:javascript
复制
@friends.include?('%params[:q]%') 
EN

回答 1

Stack Overflow用户

发布于 2011-10-27 01:16:17

您可以使用select只返回您需要的朋友

代码语言:javascript
复制
pry(main)> @friends
=> [{"name"=>"Foo bar", "id"=>"1"},
 {"name"=>"Bar Foo", "id"=>"2"},
 {"name"=>"Mark Zuckerberg", "id"=>"4"}]
pry(main)> params[:q]
=> ["1", "2"]
pry(main)> @friends.select{|friend| params[:q].include? friend['id']}                                                                                                              
=> [{"name"=>"Foo bar", "id"=>"1"}, {"name"=>"Bar Foo", "id"=>"2"}]

然而,如果你只想要其中的一部分,我建议避免获取所有的朋友。您可以使用以下条件执行fql查询:

代码语言:javascript
复制
pry(main)> graph.fql_multiquery(query1: "select uid2 from friend where uid1 = me() and uid2 IN (#{params[:q].join(',')})", query2: 'select uid , name from user where uid in (select uid2 from #query1)')
=> {"query1"=>[{"uid2"=>"1"}, {"uid2"=>"2"}],
 "query2"=>
  [{"uid"=>1, "name"=>"Foo bar"},
   {"uid"=>2, "name"=>"Bar Foo"}]}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7171091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档