1

方法

def exp_backoff up_to, url, header = {}                                                                                      
  tries = 0                                                                                                                  
  begin                                                                                                                      
    tries += 1                                                                                                               
    response = JSON.parse(open(url, header).read)                                                                            

    return response                                                                                                          
  rescue OpenURI::HTTPError => e                                                                                             
    if tries < up_to                                                                                                         
      sleep( 2 ** tries )                                                                                                    
      retry                                                                                                                  
    else                                                                                                                     
      return e                                                                                                               
    end                                                                                                                      
  end                                                                                                                        
end   

exp_backoff応答が返されることを期待して呼び出していますが、そうではありません

  exp_backoff 2, status_url                                                                                                  
  session_token = response['session_token']

このエラーの取得

undefined local variable or method `response' for main:Object (NameError)
4

2 に答える 2

0

responseメソッド内で定義したローカル変数exp_backoffは、 のメソッド本体内でのみアクセスできますexp_backoff。そのメソッド定義の外からアクセスすることはできません。

メソッド内のローカル変数に特定の値を割り当ててそれを返す場合、変数の割り当てはメソッドの外側には影響しません。

于 2014-03-06T19:53:06.467 に答える