So rufen Sie einen Ruby-Block auf, um Zugriff auf die Anrufer-Bindungen zu erhalten

9

Ich möchte Zugriff auf die Bindungen des Aufrufers haben. Was ist hier falsch?

%Vor%

Warum habe ich keinen Zugriff auf die aufrufende Instanz innerhalb des angegebenen Blocks?

    
sschmeck 01.07.2013, 08:44
quelle

3 Antworten

4

Innerhalb des Blocks befinden Sie sich nicht im Bereich der Blocks -Instanz, daher ist foo nicht sichtbar. Sie müssen das Objekt an den Block übergeben, wenn Sie Zugriff darauf haben möchten:

%Vor%

Alternativ können Sie den Block auch an instance_eval :

übergeben %Vor%     
toro2k 01.07.2013, 08:57
quelle
0

Versucht, es zu reproduzieren:

%Vor%

Innerhalb von { } oder außerhalb von {} wurde foo nicht als method oder varable definiert. Daher wurde der Ruby-Parser verwirrt und wirft einen Fehler auf.

Siehe jetzt:

%Vor%

Versuchen Sie:

%Vor%     
Arup Rakshit 01.07.2013 08:47
quelle
0

probiere das

aus %Vor%     
PieceHealth 01.07.2013 09:44
quelle

Tags und Links