【Environnement de développement】 macOS Catalina Version 10.15.3 ruby 2.5.1 Rails 5.2.4.2 visual studio code
Si vous créez une fonction de connexion avec devise, il s'agit à l'origine uniquement d'une adresse e-mail et d'un mot de passe, mais c'est une méthode pour ajouter des colonnes pour d'autres éléments.
Cette fois, ajoutez une colonne appelée société à titre d'exemple.
$ rails g migration AddColumnToUsers company
Jetons un coup d'œil au fichier de migration créé. Si vous ne définissez pas la valeur par défaut, une erreur se produira, je vais donc la décrire.
Date et heure de création_add_company_to_users.rb
class AddCompanyToUsers < ActiveRecord::Migration[5.2]
def change
add_column :users, :company, :string, null: false, default: ''
end
end
Lorsque la description est terminée, reflétez-la dans le DB.
$ rails db:migrate
Ajoutez un formulaire afin de pouvoir saisir des valeurs dans les colonnes que vous avez créées. Si vous n'avez pas créé de vue de devise, créez-en une.
$ rails g devise:views
registrations/new.html.erb
Ajouter ici---------------------------------
<div class="field">
<%= f.label :Veuillez saisir le nom de l'hôpital et le nom de l'entreprise%><br />
<%= f.text_field :company, autofocus: true, class: "new_inform"%>
</div>
---------------------------------
<div class="field">
<%= f.label :Veuillez saisir votre adresse e-mail%><br />
<%= f.email_field :email, autofocus: true, autocomplete: "email", class: "new_inform" %>
</div>
<div class="field">
<%= f.label :s'il vous plait entrez votre mot de passe%>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %>lettre)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "new-password", class: "new_inform" %>
</div>
<div class="field">
<%= f.label :Veuillez resaisir votre mot de passe%><br />
<%= f.password_field :password_confirmation, autocomplete: "new-password", class: "new_inform" %>
</div>
<div class="actions">
<%= f.submit "s'inscrire", class: "new_submit" %>
</div>
<% end %>
Utilisez la méthode configure_permitted_parameters pour définir des paramètres forts.
devise\app\controllers\application_controller.rb
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:company])
end
Maintenant, il peut être reflété dans la base de données.
Je vous serais reconnaissant si vous pouviez signaler des erreurs. Merci d'avoir regardé jusqu'à la fin.
Recommended Posts