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.
https://github.com/Sn16799/bakeryFUMIZUKI
Rails 5.2.4.2 Ruby 2.7.1 Centos7
・ 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.
$ rails new fumizuki #Comme nous sommes en juillet, le nom du magasin (fictif) est "Bakery Fumetsu".
$ cd fumizuki
#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
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. (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
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!
Comment utiliser active_admin (bien que non utilisé dans cet article) Créez l'écran de gestion le plus rapide avec Rails!
Recommended Posts