[Ruby on Rails] Méthode d'aide pratique

introduction

À propos de la méthode d'assistance, j'ai lu Perfect Ruby on Rails [édition révisée améliorée] et je résume ce que j'ai personnellement appris. ..

Qu'est-ce qu'une méthode d'assistance?

Une méthode pratique pour vous aider à développer avec des modèles de vue. Certains génèrent du HTML et d'autres des URL.

Méthodes d'assistance de chemin et d'URL

Si le chemin commençant par / excluant le domaine et le port avec la valeur de préfixe + _path lors de l'affichage du routage est défini sur la valeur de préfixe + _url, l'URL complète comprenant le domaine, etc. est renvoyée. Si le chemin a une valeur fluctuante telle que ": id", spécifiez la valeur au format de hachage comme argument. Utilisé lors de la spécification d'un chemin ou d'une URL avec url_for, link_to ou redirect_to.

Dans le cas du routage suivant, le chemin et l'URL suivants sont renvoyés.

** routage **

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

** Chemin de retour et URL **

url_for Méthode d'assistance pour créer le chemin d'une application Web. Vous pouvez tirer parti des définitions de routage sans écrire directement de chaînes. Utilisez-le lorsque vous souhaitez simplement obtenir l'URL.

url_for(users_path)
#=> /users

link_to link_to est une méthode d'assistance qui génère une balise a. À utiliser lorsque vous souhaitez définir un lien à l'écran en utilisant la définition du routage avec _path ou _url.

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

time_ago_in_words Une méthode d'aide qui permet aux humains de voir facilement combien d'espace il y a entre un certain temps et l'heure actuelle. Il semble qu'il puisse être utilisé dans un service qui affiche la dernière date et heure de connexion.

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

number_with_delimiter Une méthode d'assistance qui sépare les nombres longs par des virgules. Vous pouvez éventuellement modifier le délimiteur.

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

Il existe diverses autres méthodes d'assistance disponibles dans Rails, donc avant de les implémenter vous-même, [Rails Guide](https://railsguides.jp/action_view_overview.html#action-view%E3%81%AE% 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) semble être une bonne référence.

Méthode d'assistance propriétaire

Si la méthode d'assistance intégrée Rails ne répond pas à vos besoins, implémentez vous-même la méthode d'assistance. Le module de définition des méthodes d'assistance est défini dans le répertoire "app / helpers". Fichier d'aide correspondant au contrôleur tel que "app / helpers / application_helper.rb" s'il est utilisé pour l'ensemble de l'application, et "app / helpers / users_helper.rb" s'il est utilisé pour chaque contrôleur. préparer.

Exemple) Méthode d'assistance pour convertir des caractères anglais pleine largeur en demi-largeur

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

référence

Perfect Ruby on Rails [Édition augmentée et révisée]

Recommended Posts

[Ruby on Rails] Méthode d'aide pratique
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Association Ruby On Rails
[Ruby on Rails] Aucune erreur de méthode méthode non définie `devise_for'error resolution
Ruby on Rails Comment implémenter la saisie d'adresse automatique
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
Record d'apprentissage de Ruby on rails -2020.10.09
Record d'apprentissage Ruby on rails-2020.10.07 ②
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
[Ruby] Notes sur la méthode gets
Record d'apprentissage de Ruby on rails -2020.10.06
Résumé de la validation Ruby on Rails
Mémorandum de base Ruby on Rails
Résumé des méthodes de mise à jour de plusieurs colonnes [Ruby on Rails]
[Mis à jour de temps en temps] Ruby on Rails Méthode pratique
[Ruby on Rails] Fonction de recherche (modèle, formule de sélection de méthode)
Variables Ruby on Rails, résumé constant
Installation de Ruby + Rails sur Ubuntu 18.04 (rbenv)
[Ruby on Rails] Introduction de la fonction de pagination
Connaissance de base de Ruby on Rails
[Ruby on Rails] méthode indéfinie ʻid'for nil: méthode de résolution d'erreur NilClass
Comment utiliser Ruby on Rails
Ruby on Rails compatible japonais-anglais i18n
(Ruby on Rails6) "Effacer" le contenu publié
[Ruby on Rails] Fonction de sortie CSV
Recherche d'enregistrements Ruby on Rails, création sinon méthode find_or_create_by
Mémo de construction de l'environnement Ruby on Rails 6.0
[Ruby on Rails] Création de la page de confirmation
Ruby On Rails conçoit un conflit de routage
[Ruby on Rails] Implémentation de la fonction de commentaire
[Ruby on Rails] DM, fonction de chat
méthode des rails
[Ruby on Rails] Arrêtez de "boucler jusqu'à ce que ..."
[Ruby on Rails] Introduction des données initiales
[Ruby on Rails] Création d'un formulaire de demande
Ruby on Rails6 Guide pratique cp13 ~ cp15 [Mémo]
[Ruby on Rails] Afficher le test avec RSpec
[Ruby on Rails] Vérification du code à l'aide de Rubocop-airbnb
[Ruby on Rails] 1 modèle CRUD (routage principal)
Commande de création / suppression de modèle Ruby on Rails
Ruby on Rails6 Guide pratique cp7 ~ cp9 [Mémo]
Ruby on Rails dans les espaces de codes Visual Studio
[Ruby on Rails] Suivez l'implémentation de la fonction: bidirectionnelle