[RUBY] [Rails] Ajouter une colonne à concevoir

Pourquoi j'ai écrit

Lorsque vous créez une authentification utilisateur avec appareil, vous aurez un email et un mot de passe depuis le début, mais vous aurez besoin d'un nom pour vous enregistrer en tant qu'utilisateur. Je pense toujours que oui, alors prenez note.

supposition

--Déjà ajouté la gemme de devise --Il doit s'agir de rails g concevoir User

Ajouter une colonne

Lors de l'ajout d'une colonne à un DB, il est courant de l'écrire comme suit. Pour l'instant, attribuez au fichier de migration un nom qui vous indique ce que fait le fichier de migration.

Lorsque vous le nommez, si vous écrivez ʻAddColumnToUsers` et que cela signifie quelque chose comme "ajouter une colonne à la table utilisateur", soyez prudent lors de l'ajout de la colonne suivante. En premier lieu, je pense qu'il est nécessaire d'ajouter des colonnes = DB design, mais je suis encore inexpérimenté dans ce domaine, alors dites-moi qui est fort.

$les rails génèrent la migration Ajouter le nom de la colonne Au nom de la table Colonne à ajouter:Type de données
$ rails generate migration AddNameToUsers name:string

XXXXXXXXXXX_add_name_to_users.rb


class AddNameToUsers < ActiveRecord::Migration[5.2]
  def change
    add_column :users, :name, :string
  end
end
$ rails db:migrate

Correction du contrôleur et de la vue

erb:registrations/new.html.erb


<h2>Sign up</h2>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
  <%= render "devise/shared/error_messages", resource: resource %>

	#Ajouter à partir d'ici
 <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name, autofocus: true %>
  </div>
	#Jusque là

  <div class="field">
    <%= f.label :email %><br />
    <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
  </div>

  <div class="field">
    <%= f.label :password %>
    <% if @minimum_password_length %>
    <em>(<%= @minimum_password_length %> characters minimum)</em>
    <% end %><br />
    <%= f.password_field :password, autocomplete: "new-password" %>
  </div>

  <div class="field">
    <%= f.label :password_confirmation %><br />
    <%= f.password_field :password_confirmation, autocomplete: "new-password" %>
  </div>

  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>
<% end %>

<%= render "devise/shared/links" %>

Je veux pouvoir recevoir les informations du nom qui a volé de View, donc Ajoutez ce qui suit à application_controller.rb.

application_controller.rb


class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
  end
end

Écrivez le code suivant dans ʻapplication.html.erb. current_user` est l'une des méthodes fournies par devise, et vous pouvez obtenir les informations de l'utilisateur connecté.

erb:application.html.erb


<% if current_user.present? %>
  <p>Bonjour,<%= current_user.name %>San!</p>
<% else %>
  <p>Bonjour, Visiteur!</p>
<% end %>

S'il est bien affiché, c'est OK!

スクリーンショット 2020-07-22 17.47.14.png

Recommended Posts

[Rails] Ajouter une colonne à concevoir
[Rails] Ajoutez des paramètres forts pour concevoir
[Rails] concevoir
[Rails] Comment utiliser la "devise" des gemmes
[Rails] Comment utiliser l'appareil (Remarque)
[Rails] Traitement après l'ajout d'une colonne à la table de devise
Ajout de binding.pry (rails)
Fichier de migration pour ajouter un commentaire à la table Rails
Ajouter une clé externe à la colonne avec migrate
[Rails] Présentation du dispositif
[Rails] Ajoutez un écran de confirmation et un écran de fin pour concevoir l'inscription des membres.
[Rails] [Note] Quand ajouter = à <%%> et quand pas
Je veux ajouter un appareil dans Rails, mais je ne peux pas grouper l'installation
[Note] Comment utiliser Rails 6 Devise + cancancan
[Rails] Comment traduire la devise en japonais
[Rails] Comment créer une table, ajouter une colonne et changer le type de colonne
La route vers la japonaisisation des rails conçoit des messages d'erreur
Ajoutez une fonction de balise aux rails. Utilisez actes-comme-taggable-on
Comment ajouter conditionnellement une classe html.erb dans Rails
[Rails] Ajouté dans le modèle: nom d'utilisateur non ajouté à la base de données
Ajouter un fichier au fichier jar
Comment écrire des rails
[Rails] conçoit une méthode d'aide
[Rails] Personnaliser la validation de l'appareil
Présentation de Bootstrap aux rails !!
Présentation de Vue.js à Rails
Manipuler le dispositif avec des rails
Comment désinstaller Rails
[Rails] conçoit une méthode d'introduction
[rails] concevoir les valeurs par défaut
[rails] Comment utiliser la méthode d'assistance de devise before_action: authenticate_user!
Introduire la conception avec Rails pour implémenter la fonctionnalité de gestion des utilisateurs
[Ruby on Rails] Comment changer le nom de la colonne
[Ruby on Rails] Remplacez l'ID d'URL par le nom de la colonne
[Rails] Comment changer le nom de colonne de la table
[Rails] Comment modifier et personnaliser les vues et les contrôleurs de conception
[Rails] Ajouter des balises liées à has_many à Devise User (ajout d'une fonction pour suivre les balises)
[rails] Comment publier des images
[Rails] Introduction aux principes de base du dispositif
Qu'est-ce que Rails Gem Concevoir?
Ajouter une icône au lien d'en-tête en utilisant Rails fontawesome
Comment ajouter la fonction ActionText
[Rails] Flux lors de l'installation du dispositif de gemmes
[Rails] Comment utiliser enum
[Ruby on Rails] Ajouter une colonne avec des contraintes de clé externe
J'étais accro à la configuration de default_url_options avec l'introduction de la conception de Rails
4 Ajoutez println à l'interpréteur
Comment utiliser la jonction de rails
(Pour les débutants) [Rails] Installer Devise
Comment terminer le serveur de rails