Nach der Eingabe dachte ich, es wäre für den Benutzer einfacher, es mit einem Bestätigungsbildschirm dazwischen zu speichern. Einführung in die Methode "Eingabe" -> "Bestätigungsbildschirm" -> "Speichern" -> "Anzeige".
ruby 2.6.5 rails 6.0.0 Datenbank mysql2 0.4.4
Lassen Sie es uns implementieren ~
Terminal.
rails g controller new create show
app/controllers/events_controller.rb
class UsersController < ApplicationController
def new
end
def create
end
def show
end
end
Gleichzeitig wird die Ansichtsvorlage automatisch generiert.
Stellen Sie auch das Routing ein.
config/routes.rb
Rails.application.routes.draw do
root to: 'users#new'
resources :users, only: [:new, :create, :show] do
collection do #Das ist wichtig
post :confirm #Das ist wichtig
end
end
end
Durch Hinzufügen von "Bestätigen" zu den oben genannten ist es möglich, zum "Bestätigungsbildschirm" zu verzweigen.
Erstellen Sie ein Modell und bearbeiten Sie die Migrationsdatei.
Terminal.
rails g model user
db/migrate/2020XXXXXXXXX_create_user.rb
class CreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
t.string :name
t.string :age
t.string :email
t.timestamps
end
end
end
Terminal.
rails db:migrate
Die Grundlagen wurden implementiert. Als nächstes werden wir den Inhalt im Detail implementieren.
Die endgültige Beschreibung des Controllers finden Sie unten. Wir legen auch die Mindestvalidierung für das Speichern fest.
app/controllers/events_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def confirm
@user = User.new(user_params)
render :new if @user.invalid?
end
def create
@event = Event.new(event_params)
if params[:back]
render :new
else pay_event && @event.save!
redirect_to @event
end
end
def show
@user = User.find_by(id: params[:id])
end
private
def user_params
params.require(:user).permit(:name, :age, :email)
end
end
Der Einfachheit halber wenden wir ein Minimum an Validierung auf das Modell an.
app/models/user.rb
class User < ApplicationRecord
validates :name, :age, :email, presence: true
end
Schreiben Sie den Controller.
app/controllers/events_controller.rb
def new
@user = User.new
end
Beschreiben Sie die Ansicht. Ich habe drei Artikel gemacht.
html:app/views/users/new.html.erb
<h1>Benutzer Registration</h1>
<%= form_with(model: @user, url:confirm_users_path, local: true) do |f| %>
<div>
<%= f.label :Name%>
<%= f.text_field :name %>
</div>
<div>
<%= f.label :Alter%>
<%= f.text_field :age %>
</div>
<div>
<%= f.label :Email %>
<%= f.text_field :email %>
</div>
<%= f.submit "Zum Bestätigungsbildschirm" %>
<% end %>
Verwenden Sie "url: verify_users_path", um zum "Bestätigungsbildschirm" zu gelangen.
-Schreiben Sie den Controller.
app/controllers/events_controller.rb
def confirm
@user = User.new(user_params)
render :new if @user.invalid?
end
#Kürzung
private
def user_params
params.require(:user).permit(:name, :age, :email)
end
#Kürzung
Nehmen Sie die in "(user_params)" eingegebenen Daten und weisen Sie sie "@ user" zu. Vergessen Sie zu diesem Zeitpunkt nicht, mit dem starken Parameter in "privat" zuzulassen.
-Beschreiben Sie die Ansicht. Erstellen Sie zunächst eine Datei verify.html.erb und schreiben Sie Folgendes.
html:app/views/users/confirm.html.erb
<h1>Bestätigungsbildschirm</h1>
<p>Name: <%= @user.name%></p>
<p>Alter: <%= @user.age%></p>
<p>Email: <%= @user.email%></p>
#Bis zu diesem Punkt zur Anzeige
#Von hier zur Aufbewahrung
<%= form_with(model: @user, local: true) do |f| %>
<%= f.hidden_field :name %>
<%= f.hidden_field :age %>
<%= f.hidden_field :email %>
<%= f.submit "Senden" %>
<%= f.submit "Rückkehr", name: :back %>
<% end %>
Die dem "@ user" zugewiesenen Eingabedaten werden angezeigt und erweitert.
Wenn Sie zu diesem Zeitpunkt nur "form_with" verwenden, können Sie es auf dem "Bestätigungsbildschirm" bearbeiten. Verstecken Sie es also mit "hidden_field".
Stattdessen wird es oben im Tag-Teil <p>
angezeigt.
Damit ist der Bestätigungsbildschirm abgeschlossen.
·Regler
app/controllers/events_controller.rb
def create
@event = Event.new(event_params)
if params[:back]
render :new
else pay_event && @event.save!
redirect_to @event
end
end
Setzen Sie nach dem Speichern "redirect_to @ user", um zur Seite dieses Benutzers zu gelangen. Der "@ user" ist hier nicht die Rolle der Instanzvariablen, sondern dient dazu, die ": id" zu bestimmen, was "die Seite bedeutet, die dem in dieser Variablen gespeicherten Datensatz entspricht".
app/controllers/events_controller.rb
def show
@user = User.find_by(id: params[:id])
end
Erstellen Sie eine Aktion, um die Benutzerseite anzuzeigen.
· Aussicht Erstellen Sie abschließend einen Abschlussbildschirm.
html:app/views/users/show.html.erb
<h1>Deine Registrierung ist abgeschlossen</h1>
<p>Name: <%= @user.name%></p>
<p>Alter: <%= @user.age%></p>
<p>Email: <%= @user.email%></p>
<%= link_to "Rückkehr", root_path %>
erledigt! !!
Es war eine Methode der "Eingabe" -> "Bestätigungsbildschirm" -> "Speichern" -> "Anzeige".
Wir werden diesen "Bestätigungsbildschirm" zusammen mit dem einfachen Kalender in der Anwendung unter persönlicher Entwicklung implementieren. Wenn Sie interessiert sind, beziehen Sie sich bitte auch darauf.
[Rails] Führen Sie einen einfachen Kalender ein und fügen Sie in zusätzliche Ereignisse einen "Bestätigungsbildschirm" ein https://qiita.com/AKI3/items/1b4850bb39be61dbc1a4
Ich bin ein Anfänger in der Programmierung, aber ich poste einen Artikel in der Hoffnung, dass er Menschen hilft, die ähnlich in Schwierigkeiten sind. Dieses Mal habe ich es als Aufzeichnung der ersten Arbeit zur persönlichen Entwicklung veröffentlicht. Bis zum nächsten Mal ~
https://qiita.com/ngron/items/d55aac6e81a9fb2fe81c
Recommended Posts