rails - bei Verwendung von Group_by - Wie bekomme ich einen Index?

8

Ich habe folgendes:

%Vor%

Problem ist, dass ich einen Index brauche. Also habe ich das obige mit:

aktualisiert %Vor%

Das bricht dann mit dem Fehler ab: undefinierte Methode 'last' für 0: Fixnum

Ideen? Danke

    
AnApprentice 12.02.2011, 22:23
quelle

1 Antwort

13

Das Problem, das Sie beobachten, hängt mit der Art und Weise zusammen, wie dem Block Parameter zugewiesen werden. In Ihrem zweiten Beispiel werden Sie feststellen, dass range ein Array mit einem einzelnen range und dem passenden datas enthält, die datas Variable den Index und i immer nil .

Dies liegt daran, dass Ruby Arrays "unplates", wenn es der einzige Parameter für den Block ist. Wenn Sie mehr als einen Typ haben (in diesem Fall ein Array und eine ganze Zahl), müssen Sie Ruby darauf hinweisen, was es tun soll. Der einfachste Weg ist die Verwendung von Klammern.

%Vor%

Auf diese Weise wird Ruby wissen, was Sie meinen und das Array in range und datas aufteilen. Dies ist tatsächlich eine Funktion von Rubys Zuweisungsoperator in Verbindung mit dem Komma-Operator. Es funktioniert so

%Vor%     
Holger Just 12.02.2011, 22:38
quelle