1

我有这段代码试图从方法中返回一个值:

temp = "123"
return temp

我有这一行调用该方法并分配返回值:

person_connections = @client.get_person_connections(:id => current_user_id )

但是当我尝试检查时person_connections,它会显示一些不同的对象字符串。知道如何返回 temp 变量的实际值吗?

  def get_person_connections(options = {})
    person_id = options[:id]
    path = "/people/id=" + person_id + ":(num-connections)" 
    query_connections(path, options)
    self
  end

private

def query_connections(path, options={})
  fields = options.delete(:fields) || LinkedIn.default_profile_fields

  if options.delete(:public)
    path +=":public"
  elsif fields
    path +=":(#{fields.map{ |f| f.to_s.gsub("_","-") }.join(',')})"
  end

  headers = options.delete(:headers) || {}

  params = options.map { |k,v| v.is_a?(Array)  ? v.map{|i| "#{k}=#{i}"}.join("&") : "#{k}=#{v}" }.join("&")

  path   += "?#{params}" if not params.empty?

  temp_var = get(path, headers)

  hash = JSON.parse(temp_var)
  conn = hash["numConnections"]
end
4

1 回答 1

2

正如萨米在评论中所说:

在 Ruby 中,将返回最后一条语句。

因此,如果我们看一下get_person_connections,我们会看到最后一行是self. 这意味着它返回调用该方法的实例,@client在这种情况下。


附加说明:解决方案是 remove self,尽管如果在其他地方使用该方法要小心,因为返回self通常用于允许方法链接(尽管在方法上这样做几乎没有意义get)。

于 2012-05-29T18:14:12.753 回答