[RUBY] [Bestellfunktion] Schienen Implementierung der Bestellfunktion Bestätigungsbildschirm wird ebenfalls erstellt ~

【Tor】

Erstellen Sie ein Suchfenster, in dem Sie nach Modellinformationen suchen können

【verdienen】

■ Verbesserung von UX ■ Verbessertes Verständnis von MVC

【Entwicklungsumgebung】

■ Mac OS catalina ■ Ruby on Rails (5.2.4.2) ■ Virtual Box:6.1 ■ Vagrant: 2.2.7

【Implementierung】

Anwendungserstellung

mac.terminal


$ rails new search
$ rails g model Item name:string text:text price:integer
$ rails g controller items
$ rails g model Order quantity:integer amount:integer item:references
$ rails g conrtroller orders show confirm 
$ rails db:migrate

Modell bearbeiten

models/items.rb


has_many :orders

Route bearbeiten

config/routes.rb


root 'items#index'
  resources :items do 
    get 'order' => 'orders#show'
    post 'order/confirm' => 'orders#confirm'
    post 'order' => 'orders#create'
  end

Ansicht hinzufügen

items/index.html.erb


<h2>Artikelliste</h2>

<% @items.each do |item| %>
  <%= item.name %>
  <%= item.text %>
  <%= item.price %>
<% end %>

<h2>Artikelerstellung</h2>

<%= form_with modle: @item do |f| %>
  <%= f.text_field :name %>
  <%= f.text_area :text %>
  <%= f.text_field :price%>
  <%= f.submit %>
<% end %>

order/show.html.erb


<h2>Bestellbildschirm</h2>

<p>Gegenstand Information</p>
  <%= @item.name %>
  <%= @item.price %>

<%= form_with ([model: @item, @order],local: true url: item_order_confirm_path) do |f| %>
  <%= f.text_field :quantity %> <br>
  <%= f.text_field :amount %> <br>
  <%= f.submit "Senden" %> <br>
<% end %>

order/confirm.html.erb


<h2>Bestellbestätigungsbildschirm</h2>
  <%= @order.amount %>
  <%= @order.quantity %>
  <%= @item.name %>
  <%= @item.price %>
<%= form_with model:[@item, @order], url:(item_order_path) do |f| %>
  <%= f.hidden_field :amount %>
  <%= f.hidden_field :quantity %>
  <%= f.submit %>
<% end %>

Controller bearbeiten

orders_controller.rb


  def show
    @item = Item.find(params[:item_id])
    @order = @item.order.new
  end

  def confirm
    @item = Item.find(params[:item_id])
    @order = @item.order.new(order_params)
  end

  def create
    @item = Item.find(params[:item_id])
    @order = @item.order.new(order_params)
    @order.save
    redirect_to items_path
  end

  private
  def order_params
    params.require(:order)
    .permit(:amount,
            :quantity,
            :item_id)
  end

das ist alles.

[Ich möchte es zusammen lesen]

■ Über form_with https://qiita.com/tanaka-yu3/items/50f54f5d4f4b8dfe19f3

■ Bezüglich der Anzeige des Bestätigungsbildschirms https://qiita.com/tomoharutt/items/7959d28764912c64562f

Recommended Posts

[Bestellfunktion] Schienen Implementierung der Bestellfunktion Bestätigungsbildschirm wird ebenfalls erstellt ~
Implementierung der Fuzzy-Suchfunktion für Schienen
[Rails] Implementierung der Kategoriefunktion
Implementierung der Rails-Sortierfunktion (angezeigt in der Reihenfolge der Anzahl der Gleichen)
[Rails] Implementierung der Tutorial-Funktion
[Rails] Implementierung einer ähnlichen Funktion
[Rails] Implementierung der CSV-Importfunktion
[Rails] Asynchrone Implementierung der Like-Funktion
[Rails] Implementierung des Anmeldebildschirms in Devise
[Rails] Implementierung der Bildvorschau
[Rails] Über die Implementierung der Like-Funktion
[Rails] Implementierung der Benutzerrückzugsfunktion
[Rails] Implementierung der CSV-Exportfunktion
Implementierung der Funktionsfunktion [Rails] gem ancestry category
[Ruby on Rails] Implementierung der Kommentarfunktion
[Schienen] "Eingabe" -> "Bestätigungsbildschirm" -> "Speichern" -> "Ansicht"
[Rails] Memo zur Implementierung der Kommentarfunktion
[Rails] Ich werde die Prozedur zum Implementieren der Follow-Funktion mit form_with erklären.
[Ruby on Rails] Folgen Sie der Funktionsimplementierung: Bidirektional
Rails [Für Anfänger] Implementierung der Kommentarfunktion
Rails Grundgerüst für die Implementierung der CRUD-Funktion
[Ruby on Rails] Implementierung einer ähnlichen Funktion