[Ruby on Rails] Leseversuch (: [],: Schlüssel)

Einführung

user.try(:[],:name)

Das erste Mal habe ich diesen Code gesehen "Warum fügst du ein leeres Array in den Methodenteil ein ...?" Ich dachte. Es ist eine schlechte Sache, dass ich die Ruby (Rails) Grammatik übersprungen habe ...

Was versucht Rails überhaupt?

In Active Support enthaltene Methoden (können nicht nur mit Ruby verwendet werden) Verwenden Sie die angegebene Methode nur, wenn das Zielobjekt nicht Null ist Geben Sie die Methode an, die Sie als erstes Argument verwenden möchten, und das Argument (falls erforderlich) als zweites Argument

user = {name: "test"}

# user[:group]Verursacht einen Methodenfehler, da Null ist
user[:group].replace("A")
# => NoMethodError: undefined method 'replace' for nil:NilClass

#Wenn Sie try auf einem Null-Ziel verwenden, tritt kein Fehler auf, nur Null wird zurückgegeben
user[:group].try(:replace,"A")
=> nil

Ist ein leeres Array eine Methode?

Das ist das Hauptthema, aber Rubys Hash hat eine [] Methode. Nimmt den Schlüsselnamen als Argument und gibt seinen Wert zurück.

user.[] :name
=> "test"
#Dies ist Benutzer[:name]Gleich wie

Übrigens kann auch "+" usw. als Methode verwendet werden.

user[:name].+ 2
=> "test2"

In diesem Fall handelt es sich um eine Kombination aus try und dieser Methode

user.try(:[],:name)
=> "test"

Das Ergebnis wird zurückgegeben.

Zusammenfassung

Es fiel mir schwer, [] zu verstehen, weil ich es nicht leicht traf. Studieren Sie die Rubin / Rails-Grammatik erneut ...

Recommended Posts

[Ruby on Rails] Leseversuch (: [],: Schlüssel)
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Ruby On Rails Association
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
Ruby on Rails Lernrekord -2020.10.04
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②
Ruby on Rails lernen Rekord-2020.10.07 ①
Brechen Sie die Ruby on Rails-Migration ab
Ruby on Rails Lernrekord -2020.10.06
Zusammenfassung der Ruby on Rails-Validierung
Ruby on Rails Grundlegendes Memorandum
[Einführung] Erstellen Sie eine Ruby on Rails-Anwendung
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut
Ruby on Rails-Variablen, konstante Zusammenfassung
Installation von Ruby + Rails unter Ubuntu 18.04 (rbenv)
[Ruby on Rails] Paging-Funktion eingeführt
Grundkenntnisse in Ruby on Rails
Progate Ruby on Rails5 Rückblick
[Ruby on Rails] Fügen Sie eine Spalte mit externen Schlüsselbeschränkungen hinzu
Verwendung von Ruby on Rails
Ruby on Rails Japanisch-Englisch kompatibler i18n
(Ruby on Rails6) Gepostete Inhalte "löschen"
[Ruby on Rails] CSV-Ausgabefunktion
Ruby on Rails 6.0-Umgebungskonstruktionsnotiz
[Ruby on Rails] Erstellung der Bestätigungsseite
Ruby On Rails entwickelt Routing-Konflikte
[Ruby on Rails] Implementierung der Kommentarfunktion
[Ruby on Rails] DM, Chat-Funktion
[Ruby on Rails] Praktische Hilfsmethode
[Ruby on Rails] Stoppen Sie "Looping bis ..."
[Ruby on Rails] Einführung der Anfangsdaten
[Ruby on Rails] Erstellen eines Anfrageformulars
Ruby on Rails6 Praktischer Leitfaden cp13 ~ cp15 [Memo]
[Ruby on Rails] Test mit RSpec anzeigen
[Ruby on Rails] Codeprüfung mit Rubocop-Airbnb
[Ruby on Rails] 1 Modell CRUD (Routing Main)
Ruby on Rails-Installationsmethode [Mac Edition]
Modell [Ruby on Rails], Befehl für Controller-Terminal
Befehl zum Erstellen / Löschen von Ruby on Rails-Modellen
Versuchen Sie, die Rails-App für EC2-Teil 1 bereitzustellen.
Ruby on Rails6 Praktischer Leitfaden cp7 ~ cp9 [Memo]
Ruby on Rails in Visual Studio-Codespaces
[Ruby on Rails] Folgen Sie der Funktionsimplementierung: Bidirektional
Hinweise zur Verwendung von FCM mit Ruby on Rails