我不想为此进行2次API调用

时间:2011-05-19 22:42:56

标签: ruby hash facebook-graph-api null key-value

以下代码执行两项操作:

  1. 检查项目是否具有“checkins”键
  2. 获取具有密钥
  3. 的签入值

    我真的不喜欢为此进行两次API调用。它真的减慢了我的代码速度,但我被迫,因为如果我为签入API调用并且密钥不存在,那么我的代码就会爆炸。必须有更好的方法来做到这一点。

    if graph.get_object(self.place_id).has_key?("checkins") 
      checkins =  graph.get_object(self.place_id)["checkins"] - self.checkins
    else 
      checkins = self.checkins
    end
    

2 个答案:

答案 0 :(得分:1)

以下是我的意见:

graph_object = graph.get_object(self.place_id) # assign return to variable
if graph_object.has_key?("checkins")
  # reference returned object, no need to request it again
  checkins = graph_object["checkins"] - self.checkins
else
  checkins = self.checkins
end

*我使用Wayne Conrad的例子,更简单。

答案 1 :(得分:1)

graph_checkins = graph.get_object(self.place_id)["checkins"]
checkins = if graph_checkins
             graph_checkins - self.checkins
           else
             self.checkins
           end