concevoir est un joyau qui facilite la mise en œuvre des fonctions de gestion des utilisateurs. Il y avait de nombreuses parties où je ne comprenais pas «pourquoi ça marche» parce que ça rendait les choses faciles. Je crée une application originale, je veux changer les spécifications, et après beaucoup d'essais et d'erreurs, je sens que j'ai appris à utiliser concevoir plus qu'avant.
La première fois que j'ai découvert la conception, je n'avais pas du tout affaire aux contrôleurs. Pour la conception, le routage a été généré sans autorisation, et le contrôleur n'existait même pas, même si d'autres fonctions ont été implémentées avec le modèle MVC à l'esprit. Depuis que Rails chante le modèle MVC, j'ai appris avec l'idée de "Je me demande s'il y a un contrôleur, mais je me demande s'il disparaît." Quand je vérifie la commande dans le terminal,
rails g --help
=>
Devise:
devise
devise:controllers
devise:install
devise:views
J'ai remarqué que le dispositif peut générer un contrôleur.
Le paramètre strong a été défini dans application_controller.rb
. Ce fichier est hérité par tous les contrôleurs, il s'applique donc également aux contrôleurs de l'appareil.
N'interférez pas avec les contrôleurs autres que les appareils
application_controller.rb
before_action :configure_permitted_parameters, if: :devise_controller?
private
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:Nom de colonne])
end
Le paramètre strong n'est traité que lorsque le contrôleur de périphérique est utilisé avec devise_controller?.
Dans l'application que j'écris actuellement, je me demande si je peux changer la connexion de l'utilisateur en "nickname" </ font> et "password" au lieu de m'authentifier avec "email address" et "password". C'était.
Au terminal
rails g devise:controllers user
La différence avec la génération des autres contrôleurs est qu'ils sont pluriels en tant que contrôleur s </ font>. Parce que cette commande générera plusieurs contrôleurs en même temps, tels que la connexion et l'inscription.
config/initializwes/devise.rb/Ligne 49
config.authentication_keys = [:nickname]
Décommentez et décrivez la colonne que vous souhaitez utiliser pour toute authentification.
: password
.app/controllers/user/sessions_controller.rb
class Users::SessionsController < Devise::SessionsController
before_action :configure_sign_in_params, only: [:create] #Décommenter
(Omission)
protected #Décommenter
# If you have extra params to permit, append them to the sanitizer.
def configure_sign_in_params #Décommenter
devise_parameter_sanitizer.permit(:sign_in, keys: [:nickname, :password]) #Décommentez et décrivez la colonne que vous souhaitez utiliser pour l'authentification entre crochets * Décrivez également le mot de passe ici
end #Décommenter
config/routes.rb
devise_for :users, controllers: {sessions: 'users/sessions'}
Ajouté après utilisateurs
.
ruby:views/devise/sessions/new.html.erb
<%= form_with model: @user, url: user_session_path, class: 'sessions-main', local: true do |f| %>
<%= f.text_field :nickname, class:"nickname", id:"nickname", placeholder:"surnom" %>
<%= f.password_field :password, class:"input-default", id:"password", placeholder:"6 caractères alphanumériques demi-largeur ou plus" %>
<%= f.submit "s'identifier", class:"reg-btn" %>
<% end %>
À tout le moins, ça ressemble à ça ...
De même, il est possible de modifier les contrôleurs nouvellement enregistrés. Je me demande si je peux remplacer la partie sessions par des inscriptions ...
Recommended Posts