[RUBY] Erstellen einer EC-Site mit Rails5 ①-App-Konfiguration, verschiedene Edelsteinvorbereitungen, Modell- / Routing-Erstellung-

Einführung

Neulich hatte ich ein Problem mit der Teamimplementierung an einer Programmierschule und habe eine EC-Site erstellt. Ich möchte überprüfen, welche Art von Code funktioniert, mit Ausnahme des Teils, für den ich verantwortlich war.

Ich habe mich gefragt, welche Art von EC-Site ich verwenden soll, aber da das Google Photo-Album viele Bilder von Brot enthält, habe ich beschlossen, es als fiktive Bäckerei zu bezeichnen.

Quellcode

https://github.com/Sn16799/bakeryFUMIZUKI

Umgebung

Rails 5.2.4.2 Ruby 2.7.1 Centos7

App Übersicht

・ EC-Site (Benutzer können auf der Site einkaufen) ・ Erstellen Sie eine Benutzer- und eine Administratorseite ・ Legen Sie auf der Benutzerseite nach der Registrierung als Mitglied und der Anmeldung das Produkt in den Warenkorb und schließen Sie den Bestellvorgang ab. ・ Ändern Sie auf der Administratorseite den Bestellstatus (Warten auf Zahlung, in der Produktion, ...) und den Produktionsstatus (kann nicht starten, in der Produktion, ...) des bestellten Produkts und verwalten Sie das Produkt und die Mitglieder.

Starten Sie die App

$ rails new fumizuki #Da es Juli ist, lautet der (fiktive) Geschäftsname "Bakery Fumetsu".
$ cd fumizuki

Fügen Sie der Gemfile Folgendes hinzu

#Anmeldefunktion
gem 'devise'

#Dekoration ansehen
gem 'bootstrap'
gem 'jquery-rails'

#Bildposting
gem 'refile', require: "refile/rails", github: 'manfe/refile'
gem 'refile-mini_magick'

#Verwaltung von Umgebungsvariablen
gem 'dotenv-rails', require: 'dotenv/rails-now'

#Pager
gem 'kaminari','~> 1.1.1'
gem 'nokogiri', '1.10.9'

#debuggen
gem 'pry-rails'

Einmal installiert

$ rails g devise:install

Modellerstellung

Die DB-Konfiguration ist in der folgenden Abbildung dargestellt. Ich möchte meine eigene Administrator-Site erstellen, ohne Edelsteine zu verwenden. Bei Verwendung von gem war active_admin praktisch. association.jpg (Stetige Arbeit)

$ rails g devise Admin email:string
$ rails g devise Customer is_active:boolean first_name:string first_name_kana:string family_name:string family_name_kana:string post_code:string address:string tel:string email:string
$ rails g model Address customer_id:integer post_code:string addressee:string address:string
$ rails g model CartItem product_id:integer customer_id:integer quantity:integer
$ rails g model Genre name:string validity:boolean
$ rails g model OrderItem product_id:integer order_id:integer quantity:integer order_price:integer make_status:integer
$ rails g model Order customer_id:integer addressee:string post_code:string send_to_address:string how_to_pay:boolean deliver_fee:integer order_status:integer
$ rails g model Product genre_id:integer name:string introduction:text status:boolean image_id:string price:integer

#Sobald Sie es geschafft haben, migrieren Sie
$ rails db:migrate

Routing Bereiten Sie auch ein temporäres Routing vor.

config/routes.rb


Rails.application.routes.draw do

#Wurzelpfad
root 'homes#top'

#Kunden-Site-Routing
devise_for :customers, controllers: {
	registrations: 'customers/registrations',
	passwords: 'customers/passwords',
	sessions: 'customers/sessions'}

get 'homes/top' => 'homes#top', as: 'customer_top'
get 'homes/about' => 'homes#about', as: 'customer_about'
resources :customers, only: [:edit, :show, :update]
  get 'customers/:id/withdraw' => 'customers#withdraw', as: 'customer_withdraw'
  patch 'customers/:id/withdraw' => 'customers#withdraw_done', as: 'customer_withdraw_done'
  put "/customers/:id/withdraw" => "customers#withdraw_done", as: 'customers_withdraw_done'
resources :orders, only: [:new, :index, :create, :show]
  post 'orders/confirm' => 'orders#confirm', as: 'order_confirm'
  get 'orders/thanks' => 'orders#thanks', as: 'order_thanks'
resources :products, only: [:index, :show]
resources :order_items, only: [:index, :create, :new]
resources :addresses, only: [:index, :create, :edit, :update, :destroy]
resources :genres, only: [:show]

#Fügen Sie alle Warenkorbartikel für die Löschmethode hinzu
resources :cart_items, only: [:index, :create, :update, :destroy] do
	collection do
		delete 'destroy_all'
	end
end

#Administrator-Site-Routing
devise_scope :admins do
	devise_for :admins, controllers: {
		registrations: 'admins/registrations',
		passwords: 'admins/passwords',
		sessions: 'admins/sessions'
	}
end

namespace :admins do
	get 'homes/top' => 'homes#top', as:'top'
	resources :customers, only: [:index, :edit, :show, :update]
	resources :products, only: [:index, :create, :new, :edit, :show, :update]
	resources :orders, only: [:index, :create, :show, :update]
	resources :order_items, only: [:index, :create, :show, :update]
	resources :genres, only: [:index, :create, :edit, :update]
	get 'search' => 'searches#search', as: 'search'
end

end

Nachtrag

Zur Zeit habe ich nur Model und Routing gemacht. Es scheint, dass noch ein langer Weg vor uns liegt, bis wir eine Aktion schreiben und sie wie eine Webanwendung verhalten. Wenn Sie jedoch versuchen, etwas zu erstellen, das von drei Personen bei der Implementierung eines Teams erstellt wurde, ist der Arbeitsaufwand ungewöhnlich. Allerdings ist die Menge, die ich damals für ziemlich schwierig hielt, nicht so hoch, wenn ich sie mir jetzt ansehe. Ich habe diese App vor drei Monaten zum ersten Mal gemacht, bin aber vielleicht inzwischen erwachsen geworden.

Danach möchte ich den Controller und die Ansicht ausrichten. Fahren Sie fort mit Nächstes Mal!

Referenz

Verwendung von active_admin (obwohl in diesem Artikel nicht verwendet) Erstellen Sie mit Rails den schnellsten Verwaltungsbildschirm!

Recommended Posts

Erstellen einer EC-Site mit Rails5 ①-App-Konfiguration, verschiedene Edelsteinvorbereitungen, Modell- / Routing-Erstellung-
Erstellen Sie eine EC-Site mit Rails5 ⑤ ~ Kundenmodell ~
Erstellen Sie eine EC-Site mit Rails5 Address ~ Adresse, Genre-Modell ~
Erstellen Sie eine EC-Site mit Rails5 ③-Set Model-Assoziationen und anderen Dingen-
Erstellen Sie eine EC-Site mit Rails 5 ⑩ ~ Erstellen Sie eine Bestellfunktion ~
Erstellen einer EC-Site mit Rails 5 ⑨ ~ Erstellen einer Warenkorbfunktion ~
Erstellen Sie eine EC-Site mit Rails5 ④ ~ Kopf- und Fußzeile ~
Erstellen Sie eine EC-Site mit Rails5 seed ~ Startdateneingabe ~
Grobe Prozedur verbalisierte Ausgabe beim Erstellen einer App mit Rails
Zusammenfassung der ersten Arbeiten beim Erstellen einer App mit Rails
So geben Sie db beim Erstellen einer App mit Rails an
Erstellen Sie eine EC-Site mit Rails5 Boot ~ Bootstrap4-Einstellungen, Controller- / Aktionsdefinition ~
Downgrade einer vorhandenen App, die mit Rails 5.2.4 erstellt wurde, auf 5.1.6
Erstellen Sie eine EC-Site mit Streifen! (Konto-Erstellung)
Erstellen Sie eine EC-Site mit Rails5 ③-Set Model-Assoziationen und anderen Dingen-
Erstellen Sie eine EC-Site mit Rails5 ⑤ ~ Kundenmodell ~
Erstellen Sie eine EC-Site mit Rails5 Address ~ Adresse, Genre-Modell ~
Erstellen Sie eine EC-Site mit Rails5 ④ ~ Kopf- und Fußzeile ~
Erstellen einer EC-Site mit Rails5 ①-App-Konfiguration, verschiedene Edelsteinvorbereitungen, Modell- / Routing-Erstellung-
Erstellen Sie eine EC-Site mit Rails 5 ⑩ ~ Erstellen Sie eine Bestellfunktion ~
Erstellen einer EC-Site mit Rails 5 ⑨ ~ Erstellen einer Warenkorbfunktion ~
Erstellen Sie eine EC-Site mit Rails5 seed ~ Startdateneingabe ~
Erstellen Sie eine EC-Site mit Rails5 Boot ~ Bootstrap4-Einstellungen, Controller- / Aktionsdefinition ~
So pushen Sie mit Rails entwickelte Apps an Github