Ich werde erklären, wie die "Gastanmeldefunktion" implementiert wird, die für das Portfolio für Jobwechselaktivitäten unverzichtbar ist. Es gibt viele Möglichkeiten, dies zu tun, aber wir werden es auf die Weise implementieren, die am einfachsten zu sein scheint. Wir gehen davon aus, dass die Anmeldefunktion mit devise implementiert ist (solange sich der Personalchef anmelden kann).
① Registrieren Sie Gastbenutzerinformationen in der Seed-Datei (2) Fügen Sie der Users-Tabelle eine Gastspalte (boolescher Typ) hinzu. Auf diese Weise kann festgestellt werden, ob es sich um einen Gastbenutzer handelt oder nicht. ③ Lesen Sie die Seed-Datei nach der Migration ④ Erstellung der Gastanmeldeschaltfläche
db/seeds.rb/
User.create!(name: 'Guest User',
email: '[email protected]',
password: '12345678',
password_confirmation: '12345678',
created_at: Time.zone.now,
updated_at: Time.zone.now,
guest: true)
Wenn andere Spalten als Name, E-Mail-Adresse und Kennwort vorhanden sind, fügen Sie diese auf die gleiche Weise hinzu. Gast: Der wahre Teil ist die neu hinzugefügte Spalte, die unten beschrieben wird.
db/seeds.rb/
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
t.string :name, null: false
##Unten hinzugefügt! !!
t.boolean :guest, default: false, null: false
##Unten weggelassen
end
end
Legen Sie Standardwerte für boolesche Spalten fest. Wenn Sie die Standardeinstellung "false" festlegen, sind normale Benutzer "guest: false" und können von administrativen Benutzern unterschieden werden. (Fal wird in user.guest zurückgegeben, true wird nur für Gastbenutzer zurückgegeben.) Null: false ist nicht erforderlich, aber es ist nicht gut, null in der Datenbank zu haben, daher ist es vorläufig.
Führen Sie die folgenden Befehle der Reihe nach aus.
rails db:migrate:reset
rails db:seed
Wenn "Böenbenutzer" wie unten gezeigt registriert ist und 1 in die Böenspalte eingetragen ist, ist dies erfolgreich. ![983D61C1-739E-4B1C-9DB6-A1047C184855_4_5005_c.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694973/5fa8a35c-df9f-26d0-271b891 .jpeg)
Wenn Sie so weit kommen, werden Sie sich ausruhen.
ruby:app/views/devise/sessions/new.html.erb
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |g| %>
<%= g.hidden_field :email, value: '[email protected]' %>
<%= g.hidden_field :password, value: '12345678' %>
<div class="mb-3">
<%= g.submit 'Gast-Login', class: 'btn btn-warning' %>
</div>
<% end %>
Sie können das Formular mit g.hidden_field ausblenden, die Formularinformationen senden und sich per Knopfdruck als Gastbenutzer anmelden! Platzieren Sie diesen Knopf an einer beliebigen Position und Sie sind fertig. Danke für deine harte Arbeit.
Recommended Posts