[RUBY] [Schienen] "Eingabe" -> "Bestätigungsbildschirm" -> "Speichern" -> "Ansicht"

Einführung

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".

Inhaltsverzeichnis

  1. Fundamentbau
  2. Implementierung von "Eingabe" -> "Bestätigungsbildschirm" -> "Speichern"
  3. "Eingabebildschirm"
  4. "Bestätigungsbildschirm"
  5. "Speichern" und "Anzeigen"

Entwicklungsumgebung

ruby 2.6.5 rails 6.0.0 Datenbank mysql2 0.4.4

Implementierung

Lassen Sie es uns implementieren ~

1. Fundamentbau

Controller-Erstellung

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.

Routing

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.

Tabelle erstellen

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.

2. Implementierung von "Eingabe" -> "Bestätigungsbildschirm" -> "Speichern"

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

3. "Eingabebildschirm"

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.

4. "Bestätigungsbildschirm"

-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.

5. "Speichern" und "Anzeigen"

·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! !!

Zusammenfassung

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

Schließlich

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 ~

Referenz

https://qiita.com/ngron/items/d55aac6e81a9fb2fe81c

Recommended Posts

[Schienen] "Eingabe" -> "Bestätigungsbildschirm" -> "Speichern" -> "Ansicht"
[Schienen] Sternebewertung implementieren (Eingabe, Speichern, Anzeigen)
[Rails] Freigabe anzeigen
[Hinweis] Bestätigung des Rails3-Routings
[Bestellfunktion] Schienen Implementierung der Bestellfunktion Bestätigungsbildschirm wird ebenfalls erstellt ~
[Schienen] Speichern Sie Bilder mit Carrierwave
Monatskalender in Rails anzeigen
Beziehung zwischen Rails Routing Controller-Ansicht
[Rails 6] So erstellen Sie mit cocoon einen dynamischen Formular-Eingabebildschirm
[Rails] Fügen Sie einen Bestätigungsbildschirm und einen Abschlussbildschirm hinzu, um die Registrierung der Mitgliedschaft zu erstellen.