Ruft das Attribut des ActiveRecord-Objekts nach Zeichenfolge ab
Wahrscheinlich ist es eine wirklich einfache Sache, kann aber keine Lösung finden.
Habe ich ein ActiveRecord-Objekt und wollen sich ein Attribut wie diese:
attribute_name = "name"
user = User.find(1)
user.get_attribute_by_name(attribute_name) => "John"
Dank!
InformationsquelleAutor der Frage Kieran Klaassen | 2012-08-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alle diese arbeiten sollten:
Persönlich würde ich nicht verwenden
send
in diesem Fall. Wenn vorhanden, lieberpublic_send
zu sendenInformationsquelleAutor der Antwort Frederick Cheung
Können Sie entweder
[]
oderread_attribute()
aber Sie sind nicht äquivalent.Die sicherere Methode des Zugriff ist die Verwendung der []- Methode Methode, weil es wirft eine
ActiveModel::MissingAttributeError
Fehler, wenn das Attribut nicht vorhanden. Die read_attribute Methode zurücknil
wenn das Attribut nicht vorhanden.InformationsquelleAutor der Antwort Brent Matzelle
In Schienen 5, nur
attribute_name = "name"
funktioniertInformationsquelleAutor der Antwort Kaz