[Ruby on Rails] Praktische Hilfsmethode

Einführung

Über die Hilfsmethode habe ich Perfect Ruby on Rails [erweiterte überarbeitete Ausgabe] gelesen und zusammengefasst, was ich persönlich gelernt habe. ..

Was ist eine Hilfsmethode?

Eine praktische Methode zur Entwicklung von Ansichtsvorlagen. Einige generieren HTML und andere URL.

Pfad- und URL-Hilfsmethoden

Wenn der Pfad, der mit / ohne Domäne und Port mit dem Präfixwert + _path beginnt, wenn das Routing angezeigt wird, auf den Präfixwert + _url gesetzt ist, wird die vollständige URL einschließlich der Domäne usw. zurückgegeben. Wenn der Pfad einen schwankenden Wert wie ": id" hat, geben Sie den Wert im Hash-Format als Argument an. Wird verwendet, wenn ein Pfad oder eine URL mit url_for, link_to oder redirect_to angegeben wird.

Beim folgenden Routing werden der folgende Pfad und die folgende URL zurückgegeben.

** Routing **

    users GET    /users(.:format)             users#index
     user GET    /users/:id(.:format)         users#show
edit_user GET    /users/:id/edit(.:format)    users#edit

** Rückgabepfad und URL **

url_for Hilfsmethode zum Erstellen des Pfads einer Webanwendung. Sie können Routing-Definitionen nutzen, ohne Zeichenfolgen direkt schreiben zu müssen. Verwenden Sie es, wenn Sie nur die URL erhalten möchten.

url_for(users_path)
#=> /users

link_to link_to ist eine Hilfsmethode, die ein Tag generiert. Verwenden Sie diese Option, wenn Sie einen Link auf dem Bildschirm festlegen möchten, indem Sie die Definition für das Routing mit "_path" oder "_url" verwenden.

link_to('Bearbeiten', edit_user_path(id: 1))
#=> <a href="/users/1/edit">Bearbeiten</a>

time_ago_in_words Eine Hilfsmethode, mit der Menschen leicht erkennen können, wie viel Platz zwischen einer bestimmten Zeit und der aktuellen Zeit liegt. Es scheint, dass es in einem Dienst verwendet werden kann, der das Datum und die Uhrzeit der letzten Anmeldung anzeigt.

time_ago_in_words(Time.current)
#=> less than a minute
time_ago_in_words(Time.current + 3.days)
#=> 3 days

number_with_delimiter Eine Hilfsmethode, die lange Zahlen durch Kommas trennt. Sie können optional das Trennzeichen ändern.

number_with_delimiter 1234567890
#=> 1,234,567,890
number_with_delimiter 1234567890, delimiter: '@'
#=> 1@234@567@890

In Rails stehen verschiedene andere Hilfsmethoden zur Verfügung. Bevor Sie sie selbst implementieren, lesen Sie Rails Guide E3% 83% 98% E3% 83% AB% E3% 83% 91% E3% 83% BC% E3% 83% A1% E3% 82% BD% E3% 83% 83% E3% 83% 89% E3% 81% AE% E6% A6% 82% E8% A6% 81) scheint eine gute Referenz zu sein.

Proprietäre Hilfsmethode

Wenn die in Rails integrierte Hilfsmethode nicht Ihren Anforderungen entspricht, implementieren Sie die Hilfsmethode selbst. Das Modul zum Definieren von Hilfsmethoden ist im Verzeichnis "app / helpers" definiert. Datei für den Helfer, der dem Controller entspricht, z. B. "app / helpers / application_helper.rb", wenn er für die gesamte Anwendung verwendet wird, und "app / helpers / users_helper.rb", wenn er für jeden Controller verwendet wird. bereiten.

Beispiel) Hilfsmethode zum Konvertieren von englischen Zeichen in voller Breite in halbe Breite

app/helper/application_helper.rb


module ApplicationHelper
  def to_hankaku(str)
    str.tr('A-Za-z', 'A-Za-z')
  end
end
to_hankaku('Ruby')
#=> Ruby

Referenz

Perfect Ruby on Rails [erweiterte und überarbeitete Ausgabe]

Recommended Posts

[Ruby on Rails] Praktische Hilfsmethode
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Ruby On Rails Association
[Ruby on Rails] Kein Methodenfehler undefinierte Methode `devise_for'error Auflösung
Ruby on Rails So implementieren Sie die automatische Adresseneingabe
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
Ruby on Rails Lernrekord -2020.10.04
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] Hinweise zur Methode gets
Ruby on Rails Lernrekord -2020.10.06
Zusammenfassung der Ruby on Rails-Validierung
Ruby on Rails Grundlegendes Memorandum
Zusammenfassung der Methoden zum Aktualisieren mehrerer Spalten [Ruby on Rails]
[Von Zeit zu Zeit aktualisiert] Ruby on Rails Praktische Methode
[Ruby on Rails] Suchfunktion (Modell, Methodenauswahlformel)
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
[Ruby on Rails] undefinierte Methode `id'for nil: NilClass-Fehlerbehebungsmethode
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-Datensatzsuche, erstellen Sie die Methode find_or_create_by, wenn nicht
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
Schienenmethode
[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)
Befehl zum Erstellen / Löschen von Ruby on Rails-Modellen
Ruby on Rails6 Praktischer Leitfaden cp7 ~ cp9 [Memo]
Ruby on Rails in Visual Studio-Codespaces
[Ruby on Rails] Folgen Sie der Funktionsimplementierung: Bidirektional