(Ruby on Rails6) Créer une base de données et l'afficher dans une vue

Spécifications / version de la machine

· Version 10.15.3 ・ Rubis rubis 2.6.3p62 ・ Rails 6.0.3.2

Préface

Dans cet article, nous enregistrerons la création de la base de données et l'affichage dans la vue en Ruby on Rails6 comme un oubli. Si vous rencontrez des difficultés pour créer une base de données, j'espère que vous la trouverez utile.

Préparation

Ici, nous allons commencer par créer un répertoire. La création de la base de données sera décrite plus tard, donc si vous la connaissez, vous pouvez la sauter!

Créer un annuaire

Entrez la commande suivante dans n'importe quelle destination de répertoire. De plus, étant donné que nous supposons le déploiement sur heroku, nous avons mis en place une base de données (postgresql).

terminal


rails nouveau nom de répertoire-TB --database=postgresql

(Exemple)↓
rails new form_test -TB --database=postgresql

Si vous n'avez pas de base de données à définir, la commande suivante ne posera pas de problème.

terminal


rails nouveau nom de répertoire

(Exemple)↓
rails new form_test

Créer une page

Passons au répertoire créé précédemment et créons une page.

terminal


nom du répertoire cd

(Exemple ↓)
cd form_test

terminal


les rails génèrent un index de nom arbitraire du contrôleur

(Exemple)↓
rails generate controller Forms index

Pour "index", modifiez le nom de l'entrée avec l'intention de le créer. Il n'y a aucun problème avec la commande abrégée de generate → g. En outre, le nom du répertoire doit être au pluriel, tel que "Forms", pour une gestion plus facile ultérieurement.

terminal


index de nom arbitraire du contrôleur g de rails

(Exemple)↓
rails g controller Forms index

paramètres des itinéraires

Si vous définissez ce qui suit sur routes, il sera défini sur http: // localhost: 3000 / forms.

config/routes


Rails.application.routes.draw do
  # get "Nom arbitraire" => "Valeur arbitraire#index"
    get "forms" => "forms#index"
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end

Vérifier avec le navigateur

Je vais le vérifier une fois avec un navigateur. Entrez la commande à afficher sur le navigateur.

terminal


rails s
or
rails server

At-il été affiché?

Aussi, je l'ai écrit dans la création de répertoire postgresql, mais je peux obtenir une erreur (j'ai eu une erreur) Dans ce cas, entrez la commande suivante.

terminal


rails db:create

La cause de l'erreur sera expliquée dans un autre article.

Préparez la base de données

De là, nous allons créer la base de données.

Créer une base de données

terminal


rails g nom de la base de données modèle contenu:text
(Exemple)↓
rails g model Forms content:text

Les noms de bases de données sont plus faciles à gérer avec les acronymes «supérieur» et «pluriel». Pas omis ↓ Mais OK

terminal


les rails génèrent le contenu du nom de la base de données modèle:text
(Exemple)↓
rails generate model Forms content:text

Migration de base de données

Après avoir créé la base de données, veuillez migrer. Si vous l'oubliez, vous obtiendrez une erreur lors de la vérification avec votre navigateur.

terminal


rails db:migrate

Ajouter une publication dans la base de données

Instancier. Pour ce faire, tapez d'abord rails console dans la commande.

terminal


rails console

Nom arbitraire=Nom de la base de données.new(content: "J'étudie les rails chez Progate à partir d'aujourd'hui!")
Nom arbitraire.save

(Exemple)↓
form1 = Form.new(content: "test")
form1.save

Soit dit en passant, si vous entrez ↓ lors de la création d'un répertoire, ce sera "forms (pluriel)", il est donc préférable de le mettre sur "form (single form)" lors de l'ajout d'une base de données.

terminal


rails generate controller forms index

Enregistrer les publications de la base de données

Après avoir ajouté un message, veuillez enregistrer. En faisant cela, votre message sera enregistré.

terminal


Nom arbitraire.save

(Exemple)↓
form1.save

quit

quit est la commande pour quitter la console des rails. Vous pouvez enregistrer plusieurs publications en répétant ce processus 2 ~.

Obtenir les publications de la base de données

terminal


Cette fois je"Nom du répertoire=Nom de la base de données.all"Est utilisé.

Nom du répertoire=Nom de la base de données.all
forms = Form.all
→ Obtenir toutes les valeurs

Nom du répertoire[0]
forms[0]
→ Obtenez la première valeur

Nom du répertoire[0].content
forms[0].content
→ Valeur initiale(content)Avoir

C'est tout pour créer la base de données. Ensuite, nous allons travailler sur son affichage dans la vue.

Enregistrer le contenu de la base de données à afficher

Paramètres de contrôle

Vous pouvez obtenir tout le contenu publié en définissant "nom du répertoire = nom de la base de données.tout" utilisé pour récupérer la base de données dans le contrôleur.

De plus, dans Ruby, "form" doit être accompagné de @, comme "@form".

app/controllers/Tout_controller.rb


class PostsController < ApplicationController
  def index
  # @Nom du répertoire=Nom de la base de données.all
    @forms = Form.all
  end
end

Afficher les paramètres et chaque baie

rb:app/views/Tout/index.html.erb


<h1>Forms#index</h1>
<p>Find me in app/views/forms/index.html.erb</p>
 <% @Nom du répertoire.each do |form| %>
      <div>
     <%=Forme unique de nom de répertoire.content %>
      </div>
  <% end %>

Exemple ↓

rb:app/views/Tout/index.html.erb


<h1>Forms#index</h1>
<p>Find me in app/views/forms/index.html.erb</p>
 <% @forms.each do |form| %>
      <div>
        <%= form.content %>
      </div>
 <% end %>

Traitement itératif par Each

rb:app/views/Tout/index.html.erb


 <% @forms.each do |form| %>
En traitement
 <% end %>

Vous pouvez itérer en utilisant chacun. Aussi

rb:app/views/Tout/index.html.erb


<%= form.content %>

Affiche le «contenu» de la base de données.

Et, veuillez noter que dans Ruby, un comportement différent se produit en raison de la différence de notation de ↓. Ici, nous voulons afficher le contenu de la base de données, alors entrez <% = form.content%>.

rb:app/views/Tout/index.html.erb


<%= form.content %>
→ Afficher la chaîne de caractères dans la vue(=Important)

<% form.content %>
→ Ne pas afficher le résultat de la chaîne de caractères dans la vue

Vérifier avec le navigateur

rails_db-test.png S'il n'y a pas de problème, vous pouvez le vérifier sur les itinéraires. J'ai essayé d'afficher test1 et test2 dans le test.

Les tests ci-dessus sont publiés sur Github. Si vous souhaitez l'essayer, veuillez le télécharger.

Github

Épilogue

Merci d'avoir lu jusqu'ici. C'est tout pour créer une base de données et l'afficher dans une vue dans Ruby on Rails6. Les itinéraires et les réglages du contrôleur sont compliqués et un peu fatigants, mais j'espère qu'ils sont affichés dans la vue.

Lien de référence

Livres: <a href = "https://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby-%E7%AC%AC6 % E7% 89% 88-Informatics-IDEA-% E9% AB% 98% E6% A9% 8B / dp / 4797399848 / ref = sr_1_1? __Mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82 % AB% E3% 83% 8A & dchild = 1 & keywords =% E3% 81% 9F% E3% 81% AE% E3% 81% 97% E3% 81% 84Ruby +% E7% AC% AC6% E7% 89% 88 & qid = 1600088731 & s = livres & sr = 1-1 "target =" blank "> Fun Ruby 6e édition

Mon lien

En outre, il existe un lien vers le portefeuille Twitter, donc si vous êtes intéressé Connectez-vous s'il vous plaît. Je serais très heureux d'avoir des amis avec qui je peux partager mon apprentissage de la programmation.

Twitter Portfolio Github

Recommended Posts

(Ruby on Rails6) Créer une base de données et l'afficher dans une vue
(Ruby on Rails6) Création de données dans une table
Explication de Ruby on rails pour les débutants ③ ~ Création d'une base de données ~
Appliquer le CSS à une vue spécifique dans Ruby on Rails
Difficultés à créer un environnement Ruby on Rails (Windows 10) (SQLite3)
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
Ruby on Rails compatible japonais-anglais i18n
Explication de Ruby on rails pour les débutants ⑤ ~ Modifier et supprimer la base de données ~
Points à retenir et concepts dans le didacticiel Ruby on Rails
[Ruby on Rails] Afficher le test avec RSpec
Ruby on Rails dans les espaces de codes Visual Studio
Débutant a créé un portfolio avec Ruby on Rails
Passer de SQLite3 à PostgreSQL dans un nouveau projet Ruby on Rails
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Une série de flux de création de table → création, suppression d'enregistrement → suppression de table dans Ruby on Rails
Traitement d'échappement lors de la création d'une URL dans Ruby
Recommandation de classe de service dans Ruby on Rails
Rails nouveau dans Ruby on Rails ~ Mémorandum jusqu'au déploiement 2
Ruby on Rails ~ Principes de base de MVC et du routeur ~
Présentation de Rspec, un framework de test pour Ruby on Rails
[Ruby on Rails] Un mémorandum de modèles de mise en page
Rails nouveau dans Ruby on Rails ~ Mémorandum jusqu'au déploiement 1
J'ai fait un portfolio avec Ruby On Rails
Remarque lors de la création d'une usine plusieurs-à-plusieurs avec Rspec et des tests avec SystemSpec [RSpec, FactoryBot]
[Introduction] Créer une application Ruby on Rails
Créer un environnement de développement Ruby on Rails sur AWS Cloud9
Ecrire une classe en Kotlin et l'appeler en Java
[Ruby On Rails] Comment réinitialiser DB dans Heroku
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
[Ruby on Rails] Fonction de prévisualisation de l'image dans le fichier
Association Ruby On Rails
[Ruby on Rails] De la construction de MySQL au changement de base de données
[Rails] Comment charger JavaScript dans une vue spécifique
Explication de Ruby on rails pour les débutants ② ~ Création de liens ~
(Ruby on Rails6) Comment créer un modèle et une table
Les débutants écrivent! Jusqu'à ce que vous installiez postgreSQL sur macOS catalina et que vous le rendiez disponible dans les rails 6.0.3.2
Cliquez sur le bouton [rails] pour créer un mot de passe alphanumérique aléatoire et entrez-le dans le champ de mot de passe
Problèmes et solutions lors de la création de index.html.erb avec RubyOnRails 4 sous Windows 10
[Ruby on Rails] Ajouter une colonne avec des contraintes de clé externe
[Ruby on Rails] Afficher rapidement le titre de la page dans le navigateur
(Ruby on Rails6) Affichage de la base de données qui a obtenu l'identifiant de la base de données
Une note sur la fonction de départ de Ruby on Rails
[Rails] Comment afficher les informations stockées dans la base de données dans la vue
[Ruby on Rails] Défilement infini à l'aide de gem kaminari et jscroll
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails