[RUBY] J'ai essayé d'expliquer Active Hash

ActiveHash En décrivant directement les données inchangées telles que la sélection de l'occupation dans le fichier modèle, les données peuvent être traitées sans les enregistrer dans la base de données. En d'autres termes, en utilisant Active_Hash, la méthode ActiveRecord peut être utilisée pour les données inchangées décrites directement dans le fichier de modèle.

Méthode d'introduction

Gemfile

qiita.rb


gem 'active_hash'

Après l'écriture, exécutez l'installation du bundle.

Points à garder à l'esprit lors de la création d'un modèle

En conclusion, utilisez --skip-migration. La raison n'est pas de créer une base de données. Autrement dit, le fichier de migration n'est plus nécessaire. Notez que si vous utilisez ici la commande rails g model, un fichier de migration sera créé en même temps.

%rails g nom du modèle du modèle--skip-migration

ActiveHash::Base Vous pouvez utiliser la même méthode qu'ActiveRecord. En d'autres termes, en héritant d'ActiveHash :: Base, les méthodes ActiveRecord peuvent être utilisées pour les objets définis dans le modèle.

qiita.rb


class ShippingFee < ActiveHash::Base
  self.data = [
    { id: 0, name: '---' },
    { id: 1, name: 'Paiement(Charge de l'acheteur)' }, { id: 2, name: 'frais de port inclus(Fardeau de l'exposant)' }
  ]
end

Une image de la création d'une table avec self.data. Les données sont stockées dans un tableau au format de hachage.

belongs_to_active_hash Normalement, ce sera appart_to: nom du modèle, mais si vous souhaitez définir une association pour un modèle créé à l'aide d'ActiveHash, utilisez la méthode appartient_to_active_hash.

collection_select Une méthode qui peut afficher les données au format déroulant

Ordre des descriptions Détails Exemple concret
Premier argument Nom de la méthode Nom de colonne
Deuxième argument objet Spécification des données du tableau
Troisième argument id Nom de la colonne de base de données de référence
Quatrième argument name Nom réel de la colonne
Cinquième argument prompt Ce que vous souhaitez afficher en haut du menu déroulant
option nom de la classe --

qiita.rb


<%= f.collection_select(:shipping_fee_id, Shipping_fee.all, :id, :name, {}, {class:"select-box", id:"item-shipping-fee-status"}) %>

Exemple d'implémentation

J'en ai énuméré quelques-uns typiques · Préfectures ・ Sélection de la profession ・ Question fermée (comme répondre oui ou non) ·questionnaire · Catégorie · État du produit

Personnellement, j'ai estimé que cela réduirait considérablement le stress du côté utilisateur et qu'il serait possible de collecter des informations efficacement. Il peut être bon de l'utiliser lorsque vous souhaitez demander son opinion à l'autre partie.

finalement

Merci d'avoir lu l'article jusqu'à présent.

ActiveHash est également intégré à des éléments que vous utilisez avec désinvolture. C'est facile à mettre en œuvre, j'ai donc voulu l'utiliser de manière positive.

Je voudrais continuer à fournir des informations utiles au fur et à mesure que je poursuis mes études, alors j'ai hâte de travailler avec vous.

Merci beaucoup d'avoir lu l'article jusqu'à présent!

Recommended Posts

J'ai essayé d'expliquer Active Hash
J'ai essayé d'expliquer la méthode
J'ai essayé de mâcher C # (indexeur)
J'ai essayé de résumer le support d'iOS 14
J'ai essayé d'interagir avec Java
J'ai essayé de résumer l'apprentissage Java (1)
J'ai essayé de résumer les méthodes utilisées
J'ai essayé de migrer le traitement vers VS Code
J'ai essayé de résumer les expressions Java lambda
J'ai essayé de démarrer avec Web Assembly
J'ai essayé de résoudre la recherche binaire d'AOJ
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résumer l'API Stream
J'ai essayé de construire AdoptOpenjdk 11 sur CentOS 7
Qu'est-ce que Docker? J'ai essayé de résumer
J'ai essayé d'utiliser Selenium comme JQuery
J'ai essayé de toucher JavaScript Part.2 orienté objet
J'ai essayé Spring.
J'ai essayé de mettre Tomcat
J'ai essayé youtubeDataApi.
J'ai essayé de refactoriser ①
J'ai essayé FizzBuzz.
J'ai essayé JHipster 5.1
J'ai essayé de résumer sur JVM / garbage collection
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
J'ai essayé de faire une authentification de base avec Java
J'ai essayé d'implémenter des relations polymorphes à Nogizaka.
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
J'ai essayé de gérer les informations de connexion avec JMX
J'ai essayé d'organiser la session en Rails
java j'ai essayé de casser un simple bloc
J'ai essayé de lier grafana et postgres [docker-compose]
J'ai essayé de développer un outil de gestion des effectifs
J'ai essayé de développer un site Web pour étudier DUO3.0.
C # (base de l'encapsulation)
J'ai essayé de créer une application de clonage LINE
J'ai essayé de construire AdoptOpenJDK 8 (ajout: Amazon Corretto 8 également)
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
J'ai essayé de lier JavaFX et Spring Framework.
J'ai essayé de configurer tomcat pour exécuter le servlet.
J'ai essayé de développer une application en 2 langues
J'ai essayé de développer un site Web pour enregistrer les dépenses.
J'ai essayé d'implémenter un serveur en utilisant Netty
J'ai essayé de casser le bloc avec java (1)
J'ai essayé ce que je voulais essayer avec Stream doucement.
[J'ai essayé] Tutoriel de printemps
J'ai essayé d'implémenter le téléchargement de fichiers avec Spring MVC
J'ai essayé de lire et de sortir CSV avec Outsystems
J'ai essayé d'implémenter TCP / IP + BIO avec JAVA
J'ai essayé d'implémenter la notification push Firebase en Java
J'ai essayé d'exécuter Autoware
J'ai essayé de développer un site Web de partage de boutique de ramen.
J'ai essayé d'utiliser Gson