【Entwicklungsumgebung】 macOS Catalina Version 10.15.3 ruby 2.5.1 Rails 5.2.4.2 visual studio code
Wenn Sie eine Anmeldefunktion mit devise erstellen, handelt es sich ursprünglich nur um eine E-Mail-Adresse und ein Kennwort. Es handelt sich jedoch um eine Methode zum Hinzufügen von Spalten für andere Elemente.
Fügen Sie dieses Mal eine Spalte mit dem Namen company als Beispiel hinzu.
$ rails g migration AddColumnToUsers company
Werfen wir einen Blick auf die erstellte Migrationsdatei. Wenn Sie den Standardwert nicht festlegen, tritt ein Fehler auf, daher werde ich ihn beschreiben.
Erstellungsdatum und -zeit_add_company_to_users.rb
class AddCompanyToUsers < ActiveRecord::Migration[5.2]
def change
add_column :users, :company, :string, null: false, default: ''
end
end
Wenn die Beschreibung fertig ist, spiegeln Sie sie in der Datenbank wider.
$ rails db:migrate
Fügen Sie ein Formular hinzu, damit Sie Werte in die von Ihnen erstellten Spalten eingeben können. Wenn Sie keine Entwurfsansicht erstellt haben, erstellen Sie eine.
$ rails g devise:views
registrations/new.html.erb
Hier hinzufügen---------------------------------
<div class="field">
<%= f.label :Bitte geben Sie den Krankenhausnamen und den Firmennamen ein%><br />
<%= f.text_field :company, autofocus: true, class: "new_inform"%>
</div>
---------------------------------
<div class="field">
<%= f.label :Geben Sie bitte Ihre Email-Adresse ein%><br />
<%= f.email_field :email, autofocus: true, autocomplete: "email", class: "new_inform" %>
</div>
<div class="field">
<%= f.label :Bitte geben Sie Ihr Passwort ein%>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %>Brief)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "new-password", class: "new_inform" %>
</div>
<div class="field">
<%= f.label :Bitte geben Sie Ihr Passwort erneut ein%><br />
<%= f.password_field :password_confirmation, autocomplete: "new-password", class: "new_inform" %>
</div>
<div class="actions">
<%= f.submit "zu registrieren", class: "new_submit" %>
</div>
<% end %>
Verwenden Sie die Methode configure_permitted_parameters, um starke Parameter festzulegen.
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
Jetzt kann es in der DB widergespiegelt werden.
Ich würde mich freuen, wenn Sie auf Fehler hinweisen könnten. Danke, dass du bis zum Ende zugesehen hast.
Recommended Posts