(Ruby on Rails6) Affichage de la base de données qui a obtenu l'identifiant de la base de données

Spécifications de la machine

· Version 10.15.3 ・ Rubis rubis 2.6.3p62 ・ Rails 6.0.3.2

Préface

Ce qui précède a indiqué comment afficher la base de données dans la vue. Cependant, si vous voulez faire un travail avec Ruby on Rails, vous voulez faire acquisition d'identifiant </ strong>! Ici, l'affichage de la base de données par id est enregistré comme un enregistrement d'oubli. J'espère que ça t'aide.

Affichage de la base de données pour laquelle l'id de la base de données a été acquis

Veuillez noter que vous devrez créer une base de données pour les travaux futurs. Pour plus d'informations → Voir ci-dessus

Définir des itinéraires d'identification

Image des itinéraires Si vous «postez / enregistrez» comme ↓, vous voulez créer «Ma page / page de détails» en fonction du nombre d'id. 1 à 4 sont des identifiants.

config/routes


Rails.application.routes.draw do
  get 'Nom du contrôleur/index'
  get 'Nom du contrôleur/1' => 'Nom du contrôleur#Nom de l'action'
  get 'Nom du contrôleur/2' => 'Nom du contrôleur#Nom de l'action'
  get 'Nom du contrôleur/3' => 'Nom du contrôleur#Nom de l'action'
  get 'Nom du contrôleur/4' => 'Nom du contrôleur#Nom de l'action'
end

Si elle est laissée telle quelle, les routes seront décrites en grand nombre, alors décrivez-la comme ↓.

config/routes


Rails.application.routes.draw do
  get 'Nom du contrôleur/:id' => 'Nom du contrôleur#Nom de l'action'
end

↓ Exemple

config/routes


Rails.application.routes.draw do
  get 'posts/:id' => 'posts#index'
end

J'ai remplacé les parties 1 à 4 par : id </ strong>.

Attention aux itinéraires!

Si cela ressemble à ↓ sur les routes, une erreur se produira.

(Erreur)

config/routes


Rails.application.routes.draw do
  get 'Nom du contrôleur/:id' => 'Nom du contrôleur#Nom de l'action'← Décrit en premier
  get "/" => "forms#index"
end

Si vous écrivez la route : id </ strong> de get'posts /: id '=' posts # index '</ strong> avant la route normale, une erreur se produira. Alors, écrivez comme ↓.

(Succès)

config/routes


Rails.application.routes.draw do
  get "/" => "forms#index"
  get 'Nom du contrôleur/:id' => 'Nom du contrôleur#Nom de l'action'← Décrit plus tard
end

↓ Exemple

config/routes


Rails.application.routes.draw do
  get "/" => "forms#index"
  get 'posts/:id' => 'posts#index'← Décrit plus tard
end

Description au contrôleur

Le contrôleur est bien avec les paramètres initiaux à ce stade.

app/controllers/Tout_controller


class PostsController < ApplicationController
nom de l'action def
  end
end

Exemple ↓

app/controllers/Tout_controller


class PostsController < ApplicationController
  def index
  end
end

Obtenir l'identifiant de l'URL

Pour obtenir l'ID, utilisez params [: id] </ strong> pour l'action du contrôleur. params </ strong> est la méthode qui reçoit la valeur.

app/controllers/Tout_controller


class PostsController < ApplicationController
nom de l'action def
    @id = params[:id]
  end
end

N'oubliez pas d'utiliser @id car le contrôleur doit avoir @.

Exemple ↓

app/controllers/Tout_controller


class PostsController < ApplicationController
  def index
    @id = params[:id]
  end
end

Afficher dans la vue

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


<h1>Title</h1>
<p>smple text</p>
<%= "id est "#{@id}Est l'écran" %>

Vérifions avec le navigateur une fois ici

commander


rails s

(URL) http://localhost:3000/posts/1

rails-post_test.png

Il a été affiché. Le contenu des personnages est différent entre l'image et Qiita, mais ne vous inquiétez pas.

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


<%= "id est "#{@id}Est l'écran" %>

L'identifiant est lu dans # {@id} </ strong> sur De plus, comme il est <% = ~~%> </ strong>, il est affiché dans la vue.

Jusqu'à présent, nous avons défini l'URL et l'ID. De là, récupérons les données correspondant à l'id.

Obtenir les données correspondant à l'identifiant

Paramètres du contrôleur

Pour afficher l'ID égal </ strong>

Utilisez find_by et params [: id] </ strong>.

app/controllers/Tout_controller


class PostsController < ApplicationController
nom de l'action def
    @nom de la table=Nom de la base de données.find_by(id: params[:id])
  end
end

↓ Exemple

app/controllers/Tout_controller


class PostsController < ApplicationController
  def index
    @post = Post.find_by(id: params[:id])
  end
end

Glossaire

find_by </ strong> obtient une valeur dont la valeur de la colonne id est égale à "params [: id]". Aussi params [: id] </ strong> pourra contenir un objet contenant les données envoyées depuis le navigateur vers l'application Rails.

Paramètres des vues

Enfin, définissez les vues. Ici, affichons le contenu publié et l'heure publiée.

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


<h1>Title</h1>
<p>sample text</p>
    <%= @post.content %>
    <%= @post.created_at %>

Moins que Veuillez entrer et vérifier avec votre navigateur.

commander


rails s

rails-post_test2.png

Je suis entré dans test1 avec la commande rails console, et cela se reflète fermement.

Description de l'élément

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


<%= @post.content %>
→content(Message texte)Avoir

<%= @post.created_at %>
→ Obtenez l'heure de publication

Bonus / lien

Si vous souhaitez créer un lien vers cet article, veuillez écrire ce qui suit dans les vues.

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


<%= link_to(Publier.content, "/Nom de la page/#{post.id}") %>

Exemple ↓

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


<%= link_to(post.content, "/posts/#{post.id}") %>

Le code ci-dessus est disponible sur Github. Si vous êtes intéressé, veuillez le télécharger. → Github

Épilogue

Ce qui précède est l'affichage de la base de données pour laquelle l'ID de la base de données a été acquis. Je suis très reconnaissant de pouvoir obtenir l'identifiant et afficher le contenu de l'URL et de la base de données. Si vous le concevez, vous pouvez l'utiliser dans de nombreuses situations. Merci pour la lecture.

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