[RUBY] Création d'un site EC avec Rails5 ①-Configuration de l'application, préparation de divers gemmes, création de modèle / routage-

introduction

L'autre jour, j'ai eu un problème d'implantation d'équipe dans une école de programmation et j'ai créé un site EC. Je voudrais revoir le type de code qui fonctionne, à l'exception de la partie dont j'étais en charge.

Je me demandais quel genre de site de magasin EC utiliser, mais comme il y avait beaucoup de photos de pain dans l'album Google Photo, j'ai décidé de l'appeler une boulangerie fictive.

Code source

https://github.com/Sn16799/bakeryFUMIZUKI

environnement

Rails 5.2.4.2 Ruby 2.7.1 Centos7

Aperçu de l'application

・ Site EC (les utilisateurs peuvent faire leurs achats sur le site) ・ Créer un site utilisateur et un site administrateur ・ Sur le site utilisateur, après vous être enregistré en tant que membre et vous être connecté, mettez le produit dans le panier et terminez la procédure de commande. ・ Sur le site administrateur, modifiez le statut de la commande (en attente de paiement, en production, ...) et le statut de production (ne peut pas démarrer, en production, ...) du produit commandé, et gérez le produit et les membres.

Lancez l'appli

$ rails new fumizuki #Comme nous sommes en juillet, le nom du magasin (fictif) est "Bakery Fumetsu".
$ cd fumizuki

Ajoutez ce qui suit au Gemfile

#Fonction de connexion
gem 'devise'

#voir la décoration
gem 'bootstrap'
gem 'jquery-rails'

#Publication d'images
gem 'refile', require: "refile/rails", github: 'manfe/refile'
gem 'refile-mini_magick'

#Gestion des variables d'environnement
gem 'dotenv-rails', require: 'dotenv/rails-now'

#téléavertisseur
gem 'kaminari','~> 1.1.1'
gem 'nokogiri', '1.10.9'

#déboguer
gem 'pry-rails'

Une fois installé

$ rails g devise:install

Création de modèle

La configuration de la base de données est celle illustrée ci-dessous. Je souhaite créer mon propre site administrateur sans utiliser de gemmes. Lors de l'utilisation de gem, active_admin était pratique. association.jpg (Travail régulier)

$ 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

#Une fois que vous l'avez fait, migrez
$ rails db:migrate

Routing Préparez également un routage temporaire.

config/routes.rb


Rails.application.routes.draw do

#chemin racine
root 'homes#top'

#Routage du site client
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]

#Ajouter tous les articles du panier pour la méthode de suppression
resources :cart_items, only: [:index, :create, :update, :destroy] do
	collection do
		delete 'destroy_all'
	end
end

#Routage du site administrateur
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

Postscript

Pour le moment, je n'ai fait que Model and Routing. Il semble qu'il reste encore un long chemin à parcourir avant d'écrire une action et de la faire se comporter comme une application Web. Même ainsi, si vous essayez de faire quelque chose qui a été fait par trois personnes lors de la mise en œuvre d'une équipe, la quantité de travail est inhabituelle. Cependant, le montant que je croyais assez difficile à l'époque n'est pas si élevé quand je le regarde maintenant. J'ai créé cette application pour la première fois il y a trois mois, mais j'ai peut-être grandi entre-temps.

Après cela, je voudrais aligner le contrôleur et la vue. Continuez vers La prochaine fois!

référence

Comment utiliser active_admin (bien que non utilisé dans cet article) Créez l'écran de gestion le plus rapide avec Rails!

Recommended Posts

Création d'un site EC avec Rails5 ①-Configuration de l'application, préparation de divers gemmes, création de modèle / routage-
Créer un site EC avec Rails5 ⑤ ~ Modèle client ~
Créer un site EC avec Rails5 ⑦ ~ Adresse, modèle de genre ~
Créer un site EC avec Rails5 ③-Définir des associations de modèles et d'autres choses-
Créer un site EC avec Rails 5 ⑩ ~ Créer une fonction de commande ~
Créer un site EC avec Rails 5 ⑨ ~ Créer une fonction de panier ~
Créer un site EC avec Rails5 ④ ~ En-tête et pied de page ~
Créez un site EC avec Rails5 ⑥ ~ entrée de données de départ ~
Sortie verbalisée de procédure approximative lors de la création d'une application avec Rails
Résumé du travail initial lors de la création d'une application avec Rails
Comment spécifier la base de données lors de la création d'une application avec des rails
Créer un site EC avec Rails5 ② ~ Paramètres Bootstrap4, définition du contrôleur / action ~
Rétrograder une application existante créée avec les rails 5.2.4 vers 5.1.6
Créez un site EC en utilisant des rayures! (Création de compte)
Créer un site EC avec Rails5 ③-Définir des associations de modèles et d'autres choses-
Créer un site EC avec Rails5 ⑤ ~ Modèle client ~
Créer un site EC avec Rails5 ⑦ ~ Adresse, modèle de genre ~
Créer un site EC avec Rails5 ④ ~ En-tête et pied de page ~
Création d'un site EC avec Rails5 ①-Configuration de l'application, préparation de divers gemmes, création de modèle / routage-
Créer un site EC avec Rails 5 ⑩ ~ Créer une fonction de commande ~
Créer un site EC avec Rails 5 ⑨ ~ Créer une fonction de panier ~
Créez un site EC avec Rails5 ⑥ ~ entrée de données de départ ~
Créer un site EC avec Rails5 ② ~ Paramètres Bootstrap4, définition du contrôleur / action ~
Comment pousser une application développée avec Rails vers Github