[Ruby] Paramètres forts [nécessitent] [permis] [fusion] Comment utiliser le rôle

introduction

Cet article est rédigé avec des mots que l'affiche peut comprendre afin de revoir ce qu'il a appris.

1. Rôle

Les paramètres forts sont ceux qui ont une clé spécifiée et peuvent être limités pour recevoir uniquement des paramètres.

2. Raison de l’utilisation

Stockage involontaire de données en limitant les données des paramètres reçus. Pour éviter les mises à jour. Cette fois, nous présenterons un exemple en supposant une application frima qui vend des produits.

3. Configuration et utilisation de base

-La configuration de base est la suivante.

#· · · Omis
 def new
    @item = Item.new
  end

 def create
   @item = Item.new(item_params)
 end

 private

 def item_params
   params.require(:item).permit(:name, :explanation, :category_id, :status_id, :delivery_fee_id, :shipping_region_id, :shipping_day_id, :selling_price, :image).merge(user_id: current_user.id)
 end

comment utiliser

-Les paramètres forts sont définis comme des méthodes privées. -La lisibilité est améliorée en définissant ** item_params ** </ font> comme indiqué ci-dessous. ** action de mise à jour ** </ font> pour mettre à jour les données après l'enregistrement avec ** action de création ** </ font> Apportez des modifications afin de pouvoir préparer votre description !!

 def create
   @item = Item.new(item_params)← Ici
 end

4. Valeur limite

4-1.require (nom du modèle)

#Exemple d'utilisation
params.require(:Nom du modèle)

params.require(:item)

#Toutes les données contenues dans le modèle d'article sont enregistrées.
Utilisez permit lorsque vous souhaitez limiter les valeurs que vous souhaitez enregistrer par nom de colonne dans le modèle spécifié.

4-2.permit (: touche 1, touche 2 ...)

#Exemple d'utilisation
params.permit(:Clé 1, :Clé 2....)

params.require(:item).permit(:name, :explanation, :category_id, :status_id, :delivery_fee_id, :shipping_region_id, :shipping_day_id, :selling_price, :image)

#Même dans le modèle spécifié, lorsque vous souhaitez limiter la valeur que vous souhaitez enregistrer, limitez le nom de la colonne avec une autorisation.

4-3.merge (: clé externe que vous souhaitez fusionner, etc.)

#Exemple d'utilisation: lorsque vous souhaitez lier les informations de l'utilisateur qui a répertorié le produit
params.merge(user_id: current_user.id)

params.require(:item).permit(:name, :explanation, :category_id, :status_id, :delivery_fee_id, :shipping_region_id, :shipping_day_id, :selling_price, :image).merge(user_id: current_user.id)

Mise en garde

Vous pouvez utiliser ** current_user.id ** car vous utilisez ** devise **. </ font> Il y avait un article qui a été utile, donc je vais le partager.

Liste des méthodes d'assistance disponibles dans Rails concevoir https://qiita.com/tobita0000/items/866de191635e6d74e392

5. Enfin

Si vous avez des suggestions, je vous serais reconnaissant de bien vouloir me le faire savoir pour votre étude.

Recommended Posts