[RUBY] Comment obtenir des informations sur les tables associées dans les tables plusieurs-à-plusieurs

Ce que vous pouvez voir dans cet article

Organiser une association pour qu'il y ait une relation plusieurs-à-plusieurs Comment obtenir des informations sur la table associée.

supposition

Langue: Ruby    Prenons comme exemple l'application sur laquelle je travaille. J'ai fait une association plusieurs-à-plusieurs entre le CD et les chansons enregistrées dessus. Raison plusieurs-à-plusieurs: le CD contient plusieurs chansons. Le morceau peut être sur plusieurs CD.

visualMusic-Page-2.png

visualMusic-Page-3.png

Alors Créez une table un-à-plusieurs. Créez une table intermédiaire en même temps.

Ce que vous souhaitez mettre en œuvre

Basé sur ce tableau de disques J'ai préparé Viwe (show.haml.html) parce que je voulais faire une page détaillée pour chaque CD.

(URL▶︎localhost:3000/discs/1)
Exemple ①: Lorsque disc_id vaut 1
Informations que vous souhaitez obtenir / afficher: Morceaux liés au CD-A (morceau-A, morceau-B, morceau-C)


Exemple ②: Lorsque disc_id vaut 2
Informations que vous souhaitez obtenir / afficher: Morceaux liés au CD-B (morceau-A, morceau-D, morceau-E)     : point_right_tone1: Je veux aussi obtenir des informations à partir de tables liées! C'est l'objectif cette fois.

Exemple ① diagramme de tableau

visualMusic-Page-4 (2).png Si le titre de la chanson rose associé est également affiché sur la même page, il est réussi. Avez-vous compris ce que vous vouliez faire?

Code réel

Ici, nous obtiendrons l'identifiant affiché dans l'URL. Par exemple, disc_id: 1. L'utilisateur peut indiquer qu'il veut des informations sur l'id: 1 CD.

discs_controller.rb


class DiscsController < ApplicationController
#réduction

  def show
    @disc = Disc.find(params[:id])
  end

#réduction
end

ruby:show.html.haml(show.html.Pour erb, convertissez haml en html. )



- @disc.songs.each do |song|
    = song.name

Pour le routage, mettez: show comme "resources: discs, only: [: show]".

point

Je pense que le point est la description en chevauchant la table.

ruby:show.html.haml(show.html.Pour erb, convertissez haml en html. )



- (params[:id]Variable obtenue).(Nom de la table associée que vous souhaitez gagner).each do |(Variables utilisées ci-dessous)|
    =(Variables spécifiées ci-dessus).(Nom de la colonne que vous souhaitez afficher dans le tableau des revenus)

Je pensais que l'explication était de la merde, mais je l'ai écrite en détail.

Je pense que j'ai pu l'afficher ci-dessus. Je vous remercie pour votre travail acharné!

Un mot mémo

Je suis vraiment un débutant Actuellement, les mérites de former une association, Je n'ai pas compris les mérites d'avoir une relation parent-enfant. Cependant, cette fois, j'ai trouvé qu'en le rendant plusieurs-à-plusieurs, d'autres informations de table peuvent être récupérées même dans la vue liée à une seule table. J'ai remarqué que les informations de l'URL qui peuvent être reçues du client proviennent de "/ discs / 1", "/ discs / 1 / song", "discs / new", etc. De plus, dans le routage, je viens de remarquer que j'ai reçu des instructions de la table de source d'informations principale, que j'ai reçu les informations de viwe affichées et que j'ai pu décrire les informations extraites de la table avec le contrôleur.

Si quelqu'un qui est également préoccupé par les bases peut obtenir des indices à ce sujet, Cela devrait avoir du sens pour moi de trébucher ici! j'ai pensé Je l'ai enregistré ici comme un article pour moi qui trébucherai à nouveau au même endroit dans le futur.       Merci d'avoir lu jusqu'au bout: détendu: A bientôt: vague:

Recommended Posts

Comment obtenir des informations sur les tables associées dans les tables plusieurs-à-plusieurs
Comment obtenir des paramètres dans Spark
Comment obtenir la date avec Java
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
[Rails] Utilisez le dispositif pour obtenir des informations sur l'utilisateur actuellement connecté
Comment obtenir les informations d'identification Keycloak dans la classe d'intercepteur
Comment obtenir une classe depuis Element en Java
Bibliothèque "OSHI" pour acquérir des informations système avec Java
Comment obtenir le nom d'une classe / méthode exécutée en Java
Comment obtenir des valeurs en temps réel avec TextWatcher (Android)
Comment obtenir les informations les plus longues de Twitter à partir du 12/12/2016
Comment surveiller les informations d'application en temps réel à l'aide de JConsole
[Rails] Comment afficher les informations stockées dans la base de données dans la vue
Comment utiliser Lombok au printemps
Comment trouver May'n dans XPath
Comment utiliser HttpClient de Java (Get)
Comment masquer la barre de défilement dans WebView
Comment démarrer avec Slim
[rails] Comment afficher les informations de base de données
Comment exécuter JUnit dans Eclipse
Comment itérer indéfiniment en Ruby
Comment exécuter Ant dans Gradle
Comment maîtriser la programmation en 3 mois
[rails] Comment afficher les informations parent dans la vue enfant dans des relations imbriquées
Comment apprendre JAVA en 7 jours
Comment installer Bootstrap dans Ruby
Comment utiliser InjectorHolder dans OpenAM
Comment obtenir l'identifiant de la clé PRIMAY incrémentée automatiquement dans MyBatis
Comment obtenir la valeur de boolean avec jQuery sous forme simple de rails
Comment installer jQuery dans Rails 6
Comment utiliser les classes en Java?
Comment stocker les informations saisies dans la zone de texte dans une variable de la méthode
Comment nommer des variables en Java
Comment obtenir et ajouter des données depuis Firebase Firestore dans Ruby
Comment définir Lombok dans Eclipse
Comment penser la conception de classe (division) dans un système d'entreprise (1)
Comment obtenir la longueur d'un fichier audio avec Java
Comment installer confortablement JDK 11 dans votre Mac
Comment concaténer des chaînes avec Java
Comment installer Swiper in Rails
Comment obtenir la date actuelle sous forme de chaîne au format aaaaMMjj
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
Comment créer votre propre annotation en Java et obtenir la valeur
Comment obtenir une liste de noms de feuilles Excel en Java (POI vs SAX)
[swift5] Comment spécifier la couleur en hexadécimal
Comment implémenter la fonctionnalité de recherche dans Rails
Comment implémenter le calcul de la date en Java
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Comment changer le nom de l'application dans les rails
Comment utiliser le volume nommé dans docker-compose.yml
Comment filtrer JUnit Test dans Gradle
Comment normaliser le pied de page d'en-tête dans Thymeleaf
Comment inclure Spring Tool dans Eclipse 4.6.3?
[Note] Comment démarrer avec Rspec
Comment ajouter un fichier jar dans ScalaIDE