Ruby String-variable "true" zurückgeben .is_a?(Array)

Habe ich eine Methode, mit der entweder ein array oder ein string

Für die Methode, um korrekt zu arbeiten, muss ich konvertieren, dass die Zeichenfolge in ein array.
Da wird es manchmal Zeichenfolge, wollte ich es überprüfen, ob die variable ein array ist, und wenn Sie nicht konvertieren es in ein array. Also habe ich Folgendes gemacht:

unless variablename.is_a?(Array)
  variablename = variablename.lines.to_a
end

In der zweiten Zeile dies fehl und ich bekomme ein ruby-Fehler, die 'Linien' nicht verfügbar ist, um ein array-Objekt.

Ich auch versucht .kind_of? mit dem gleichen Ergebnis

Bekam ich meine Antwort, aber ich wollte auch klar, was genau ich gefragt wurde.
Ich bin getestet, um zu sehen, ob variablename ist ein array. Aus irgendeinem Grund, wenn variablename ist ein array, es läuft immer noch, und als die zweite Zeile der folgende Fehler Auftritt:
undefined method `Linien' für #Array:0x000000021382b8 (NoMethodError)

Können Sie überprüfen variablename um sicherzustellen, dass seine Inhalte und die Art und stellen die eigentliche exception geworfen?
String#to_a ist nicht definiert.
Wenn die beiden Antworten sind nicht korrekt, dann müssen Sie verbessern die Frage, denn es ist somit unklar, was Sie brauchen.
Was passiert, wenn Sie einfügen p variablename.class Recht nach dem Zustand? Was wird es sagen?
Es sei denn, Sie können zeigen Sie uns den code oder Folgen Sie dem wirklich einfachen debugging-Anweisungen, die von sawa, wir sind nicht gonna überall zu bekommen.

InformationsquelleAutor Jon Heckman | 2013-09-06

Schreibe einen Kommentar