2017-05-18 4 views
0

Ich habe eine Funktion:Wie werden die Rückgabewerte dieser Funktion verwendet?

def get_vals 
    #do something... 
    # 
    # 
    # 

    return arr1, arr2, arr3 
end 

arr1, ARR2, arr3 sind Arrays.

Jetzt möchte ich diese in meiner Aktion verwenden:

def juko 
    results = article.get_vals 
    puts results 
    # 
end 

Mit dem Befehl legt, überprüfte ich, dass ich wieder den 3-Arrays erhalten. Aber ich kann nicht darauf zugreifen.

ich es so versucht:

@data_array = results[:arr1] 
@data_input = results[:arr2] 
@pairs = results[:arr3] 

ich die Meldung: "keine implizite Umwandlung von Symbol in integer"

Kann mir jemand helfen?

Antwort

3

get_vals gibt Ihnen ein Array zurück.

Hotfix:

@data_array, @data_input, @pairs = results 

Oder sauberer Ansatz (Rück einen Hash aus get_vals-Methode):

def get_vals 
    # 
    # 
    # 
    { data_array: arr1, data_input: arr2, pairs: arr3 } 
end 

Jetzt:

@data_array = results[:data_array] 
@data_input = results[:data_input] 
@pairs = results[:pairs] 
Verwandte Themen