我有一个Array
的数组,如果用户的Facebook好友列表如下:过滤基于数据库记录
[
{ 'name' => 'John Mallock', 'id' => '123123' },
{ 'name' => 'Susan Freely', 'id' => '123123123' },
...
]
我想过滤此列表中存在的users
表在我的Rails应用程序条目。目前,我正在做这个如下:
graph = Koala::Facebook::API.new 'access_token'
friends = graph.get_connections 'me', 'friends' # Returns the structure above
friends.select! { |f| User.exists? :facebook_id => f['id'] }
这导致SELECT
查询列表中的每一位朋友,这是明显的低效。
是否有一种更有效的方法来过滤基于数据库记录的列表?
建立一个所有ID的数组,并一次检查它们。然后,您将拥有一组用户以及现有ID的数组。从这一点,你只是过滤。 (作为评论发布,因为我不知道Ruby或FB API,所以我希望我没有忽略任何东西。) – Corbin 2012-03-02 19:51:29