2017-01-25 4 views
-1

ich einen Hash wie dieses:in Hash-Werte in Hash abrufen

$login_form = { 
    $username => {web_element_type: :id, web_element: 'uname'}, 
    $password => {web_element_type: :id, web_element: 'pass'} 
} 

Wie kann ich $ Kennwort des Web-Elementtyp und Stegelement mit dem einfachsten Weg abrufen?

+2

Ich würde vorschlagen, dass Sie gehen, lesen Sie einige Intro Ruby-Syntax. Ruby unterscheidet sich von PHP. Man kann nicht einfach erwarten, dass die Syntax einer Sprache überall angewendet wird. – mudasobwa

Antwort

1

Globale Variablen?

Sind Sie sicher, dass Sie global variables benötigen?

Derzeit sind die Schlüssel in Ihrem Hash nicht Zeichenfolge, Symbol oder Ganzzahlen, sondern das Objekt, auf das die Variablen $username und $password verweisen. Diese Variablen sind global und von überall in Ihrem Code aus zugänglich. Dies scheint für eine Variable namens password keine gute Idee zu sein.

Wenn diese Variablen nicht initialisiert werden, sie sind beide nil, so dass Ihr login_form tatsächlich ist:

{nil=>{:web_element_type=>:id, :web_element=>"pass"}} 

Die Werte für $username von $password überschrieben wurden.

Wenn Sie sicher sind, dass login_form eine globale Variable sein sollte:

$login_form = { 
    username: {web_element_type: :id, web_element: 'uname'}, 
    password: {web_element_type: :id, web_element: 'pass'} 
} 

p $login_form[:password].values_at(:web_element_type, :web_element) 
#=> [:id, "pass"] 
type, element = $login_form[:password].values_at(:web_element_type, :web_element) 
p type 
#=> :id 
p element 
#=> "pass" 

Wenn nicht, Sie @login_form oder einfach nur login_form nutzen könnten. Wenn Sie immer noch verwirrt sind, können Sie this betrachten.

+0

Ich habe es versucht, aber es hat nicht gelöst. Beispiel: Wenn ich den Wert von $ username abrufe, wird sogar der Wert von $ password abgerufen. – buurkeey

+0

Siehe Update über globale Variablen. –

+0

"Sie müssen zuerst den Wert für' $ password' erhalten, was ein Hash ist.-Das ist falsch, bitte entfernen. – mudasobwa

1

wie auf diese Weise wissen

$login_form = { 
    :username => {web_element_type: :id, web_element: 'uname'}, 
    :password => {web_element_type: :id, web_element: 'pass'} 
} 

Sie password wie auf diese Weise abrufen können

$login_form[:password] 

Wenn Sie irgendeine Frage bitte mich Diese Lösung kann und bereit Hash

Hash definieren helfen .

+0

Ich habe eine Frage: Warum haben Sie diese Antwort gepostet, als der gleiche Inhalt eine halbe Stunde vorher gepostet wurde? –