[RUBY] J'ai approfondi ma compréhension de la méthode de fusion

introduction

Lors de la mise en œuvre de la fonction pour enregistrer les informations du formulaire dans plusieurs tables à l'aide de l'objet de formulaire, enregistrez l'erreur la plus problématique afin de ne pas l'oublier.

Scène supposée

L'utilisateur achète l'article. En même temps que l'enregistrement de ce qui est entré dans le formulaire dans la base de données, il enregistre également quel produit a été acheté par quel utilisateur. Autrement dit, lorsque vous appuyez sur "Acheter" sur le formulaire, il est enregistré dans deux tableaux.

À propos de la méthode de fusion

La méthode à utiliser lors de la définition de paramètres forts.

Exemple d'utilisation

controllers.rb


private
  def user_order_params
    params.require(:user_order).permit(:postal_code, :prefecture_id).merge(user_id: current_user.id, item_id: params[:item_id])
  end

ʻUser_id: La méthode current_user de current_user.idpeut être utilisée car le périphérique Gem est installé. Vous pouvez entrer des valeurs avec ʻitem_id: params [: item_id]car le routage est imbriqué et ʻitem_id` est inclus dans l'URL. Les paramètres forts sont décrits ci-dessous la méthode privée.

L'argument de «require» est le nom du modèle. L'argument de «permit» est le nom de colonne de DB.

Paramètres qui peuvent être confirmés dans le terminal

 "user_order"=>{"hoge"=>"", "postal_code"=>"", "prefecture_id"=>"1"}, "commit"=>"achat", "controller"=>"orders", "action"=>"create", "item_id"=>"7"}

Lors de l'utilisation de la méthode de fusion

Lorsque le contenu saisi par l'utilisateur dans form_with est inclus dans le hachage avec la clé, mais que vous souhaitez enregistrer le contenu non saisi par l'utilisateur. Par exemple, l'identifiant de l'utilisateur et l'identifiant du produit ne sont pas directement saisis par l'utilisateur, mais je souhaite les inclure dans les paramètres et enregistrer le DB. Dans ce cas, utilisez la méthode de fusion pour décrire la clé et la valeur que vous souhaitez inclure dans le paramètre. Dans l'exemple ci-dessus, user_id est extrait de crrent_user.id et item_id est extrait des paramètres inclus dans l'URL et inclus dans les paramètres.

finalement

Quand l'erreur fut résolue, il marmonna Marge seule ...

Recommended Posts

J'ai approfondi ma compréhension de la méthode de fusion
À propos du rôle de la méthode initialize
méthode de fusion
Mes réflexions sur la méthode d'égalité (Java)
[Order method] Définit l'ordre des données dans Rails
[Java] Gestion des Java Beans dans la chaîne de méthodes
L'ordre des modificateurs de méthode Java est fixe
Log4j 2 Comprendre les concepts sous-jacents du système de journalisation
Sortie de la façon d'utiliser la méthode slice
[Java] Lors de l'écriture du source ... Mémorandum ①
Utilisez-vous correctement la méthode par défaut de l'interface?
Sortie sur la méthode, partie 2
Le monde de Clara-Rules (2)
Jugement du calendrier
Le monde de Clara-Rules (4)
Le monde de Clara-Rules (1)
Le monde de Clara-Rules (3)
À propos de la méthode de longueur
définition de la méthode ruby
Le monde de Clara-Rules (5)
L'idée du tri rapide
À propos de la méthode cartographique
À propos de la méthode des ancêtres
À propos de la méthode to_s.
L'idée de jQuery
La spécification d'autorisation de la méthode FileUtils est un nombre octal.
La méthode de la fonction primitive spécialisée IntFunction s'applique-t-elle ou applyAsInt?
[Ruby] Questions et vérification du nombre d'arguments de méthode
De l'habitude de créer des objets de valeur pour une compréhension orientée objet
Récapitulatif des valeurs renvoyées par la méthode des caractéristiques Spliterator #java
Réintroduction à Java for Humanities 0: Comprendre l'acte de programmation
Viser une compréhension de base du flux de traitement récursif