我有这个代码试图从方法中返回一个值:
temp = "123"
return temp
我有这行调用方法并分配返回值:
person_connections = @client.get_person_connections(:id => current_user_id )
但是当我尝试检查person_connections
时,它会显示一些不同的对象字符串。知道如何返回临时变量的实际值吗?
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
答案 0 :(得分:2)
Samy在评论中说:
在Ruby中,将返回最后一个语句。
因此,如果我们查看get_person_connections
,我们会看到最后一行是self
。这意味着它返回调用该方法的实例,在这种情况下为@client
。
附加说明:解决方案是删除self
,但如果在其他地方使用该方法则要小心,因为返回self
通常用于允许链接方法(虽然在get
方法上做到这一点几乎没有意义。