[RUBY] Ajouter, enregistrer, supprimer, ajouter des colonnes, enregistrer des images à partir de rails Création de bases de données

introduction

Créer DB, ajouter du contenu, enregistrer, supprimer avec la console de rails.

Créer une table utilisateur

$ rails g model User name:string email:string
id name(string) email(string)
1 alice [email protected]
2 tom [email protected]

Refléter les changements dans la base de données

$ rails db:migrate

Ajouter des données (C)

$ rails console
> user = User.new(name:"alice", email:"[email protected]")
> user.save

Lire les données (R)

> user = User.all
> user[0]

Mise à jour des données (U)

> user = User.all
> user0 = user[0]
> user[0].name = "alice_alice"
> user[0].save

Supprimer les données (D)

> user[0].destroy

Validation

La validation est un mécanisme permettant de vérifier si les données sont correctes avant que l'objet ne soit enregistré dans la base de données.

Validation pour vérifier les "e-mails en double"

class User < ApplicationRecord
    validates :email, {uniqueness: true}
end

Validation pour vérifier le nombre de caractères

class Post < ApplicationRecord
    validates :content, {presence: true, length: {maximum: 140}}
end

Ajouter une colonne

id name(string) email(string)
1 alice [email protected]
2 tom [email protected]

Ajoutez des informations d'image utilisateur à cela!

$ rails g migration add_image_name_to_users

Le fichier est ajouté au dossier de migration / db / migration /.

Comment lire le fichier de migration

Contenu de / db / migration / 20201010_create_post.rb

La méthode de changement a été automatiquement générée dans le fichier de migration créé par rails g model. J'ai donc pu refléter les changements avec rails db: migrate sans aucun changement particulier.

class CreateUsers < ActiveRecord::Migration[5.0]
    def change
        create_table :users do |t| #Créer une table nommée posts
            t.string :name #Créer une colonne nommée nom dont les données sont une chaîne
            t.string :email #Créez une colonne nommée email avec une chaîne de données
            t.timestamps
        end
    end
end

Vous devez ajouter les colonnes vous-même

Cette fois, nous allons ajouter une colonne, nous devons donc écrire le contenu de la méthode de changement par nous-mêmes.

class AddImageNameToUsers < ActiveRecord::Migration[5.0]
    def change
        add_column :uses, :image_name, :string #Nom de table, nom de colonne, type de données
    end
end

Exécuter le contenu de la méthode de changement

$ rails db:migrate

Enregistrer l'image

Ecrire un fichier

Utilisez File.write.

$ rails console
> File.write("public/aaa.txt", "Hello World")
# File.write(Où écrire,Contenu)

Écriture de données d'image

Utilisez les méthodes File.bin write et read. Écrivez la lecture ʻimage dans public / user_images / "1.jpg " ʻet enregistrez-la.

    if image = params[:image]
      @user.image_name = "#{@user.id}.jpg "
      File.binwrite("public/user_images/#{@user.image_name}", image.read)
    end

Recommended Posts

Ajouter, enregistrer, supprimer, ajouter des colonnes, enregistrer des images à partir de rails Création de bases de données
Ajouter et enregistrer à partir de la création d'une base de données de rails
[Rails] Enregistrez des images à l'aide de carrierwave
Ajouter, remplacer, supprimer des images Java PDF