Ajouter et enregistrer à partir de la création d'une base de données de rails

introduction

Créez une application Web qui peut faire CRUD (créer, lire, mettre à jour, supprimer) comme l'application Twitter la plus basique.

Créer un tableau et refléter son contenu

$ rails g model Post content:text
//rails g nom de la table modèle(Forme unique)Nom de colonne:Type de données(Quel type de données sera saisi)

$ rails db:migrate
//Refléter le contenu du fichier de migration = table(DB)Pouvez

Le nom de la table est unilatéral.

$ rails console

> post = Post.new(content:"Hello World")
//Créer une "instance de publication" avec le contenu de Hello World

> post.save  

> posts = Post.all
> posts[0] //posts[0]Peut être confirmé

Dans l'index des actions du contrôleur de messages, Créez un index de fonction qui reçoit le contenu du blog à partir de la table.

class PostsController < ApplicationController
  def index
    @posts = Post.all
    # @posts = [
    #   "J'étudie les rails d'aujourd'hui!",
    #   "La page de liste de messages est en cours de création!",
    #   "J'ai mangé une collation aujourd'hui!",
    #   "Je veux manger du chocolat",
    #   "Il faisait beau après un long moment aujourd'hui"
    # ]
  end
end

Si vous ajoutez @ à la variable, vous pouvez y accéder à partir d'autres fichiers, utilisez donc @ posts. Il peut être affiché en html comme ceci.

  <div class="container">
    <% @posts.each do |post| %>
        <div class="posts-index-item">
            <%=post.content %>
        </div>
    <% end %>

Lorsque css est organisé, cela ressemble à ceci. J'ai pu l'ajouter depuis la console des rails! !! !! !! スクリーンショット 2020-10-20 20.24.50.png

Mettre ensemble html

Écrivez le code HTML que vous souhaitez afficher sur n'importe quelle page dans application.html.erb Comme l'en-tête.

Une méthode qui facilite la création de liens

Écrivez ceci en html avec <li> </ li>.

<%=link_to("TweetApp","/") %>

Faisons un nouvel écran de publication

Vérifier les messages avec l'identifiant: 3

$ rails console

> post = Post.find_by(id: 3)
> post.content
> post.created_at #Heure de publication

Route

  #Acheminement de la page de détail des articles
  get "posts/:id" => "posts#show"

Soumettre à partir du formulaire de publication

méthode form_tag

<%=form_tag(url)%>
<%end%>

méthode redirect_to

  def create
    redirect_to("/posts/index")
  end
    <%=form_tag("/posts/create")%>
        <div class="form">
        <div class="form-body">
            <textarea name="content"></textarea>
            <input type="submit" value="Publier">
        </div>
        </div>
    <%end%>

Il est enregistré en tant que content: (contenu publié) dans une table de hachage appelée params, donc Nouveau, enregistrez et redirigez comme suit

  #Ajouter une action de création
  def create
    @post = Post.new(content: params[:content]) 
    @post.save
    redirect_to("/posts/index")
  end

Modifier et supprimer des messages

Fonction d'édition

rails console
> post = Post.find_by(id: 1)
> post.content = "apple" #Écraser
> post.save

Supprimer la fonction

rails console
> post = Post.find_by(id: 1)
> post.destroy

Recommended Posts

Ajouter et enregistrer à partir de la création d'une base de données de rails
Ajouter, enregistrer, supprimer, ajouter des colonnes, enregistrer des images à partir de rails Création de bases de données
Ajout de binding.pry (rails)
Principes de base de la base de données Rails
Enregistrer les données d'un fichier Excel à l'aide de Rails Gem Roo
[Ruby on Rails] De la construction de MySQL au changement de base de données
Cloud9 (Rails) de Github
Création de portfolio Ruby on Rails
[Rails] Enregistrez des images à l'aide de carrierwave
Ajout de la création du type de référence des rails
[Rails] Ajouter une colonne à concevoir
Énumération des rails d'agrégation à partir de SQL