Ich versuche, eine Zeichenfolge mit einem Array von Objekten zu vergleichen. Wenn also ein String-Wert mit dem Objekt innerhalb des Arrays übereinstimmt, wird es beibehalten. HierRuby keep_if Vergleich eines Arrays mit String
ist das Beispiel:
sample = [#<Model::ID:0x007fcb83ace8a0
type_id: 6,
parent_name: "Old Man",
child_name: "Junior">,
#<Model::ID:0x007fcb83abd0a0
type_id: 6,
parent_name: "Mary",
child_name: "Michelle">,
#<Model::ID:0x007fcb83abce70
type_id: 6,
parent_name: "Ole Bob",
child_name: "Bobby">]
name = "Michelle"
So habe ich versucht, die folgenden:
sample.keep_if { |keep_ele| [keep_ele]["child_name"] == name }
und diese gibt die folgende Fehlermeldung: Typeerror: keine implizite Konvertierung von String in Integer
Aber wenn ich in IRB bin und ich sample[1]["child_name"]
ausspreche, entspricht es "Michelle"
So dann habe ich versucht:
sample.keep_if { |keep_ele| keep_ele["child_name"] == name }
und es ist gerade ein leeres Array: []
Irgendeine Idee, wie man die keep_if laufen?