Cette fois, j'ai conçu le tableau pour créer un site clone pour l'application Furima. Comme c'est la première fois que je le fabrique moi-même, la qualité de la conception de la table n'est toujours pas claire, mais pour le moment, veuillez la négliger en tant que sortie ...
C'est devenu comme ça.
Le but est de préparer un fichier en utilisant Active Hash pour la pièce à sélectionner à partir des données existantes. L'état du produit, la préfecture du lieu de livraison au moment de l'achat, etc. Concernant la table prefectures (active_hash) qui représente la préfecture, nous utilisons deux lieux, la source d'expédition et la destination.
Mettez ce qui suit dans le Gemfile et l'installation du bundle.
Gemfile
gem 'active_hash'
Créez maintenant un modèle pour Active Hash. ⚠︎ Créez votre propre modèle qui hérite d'ActiveHash :: Base au lieu de le créer avec des commandes dans le terminal ⚠︎
À titre d'exemple, prenons un fichier de catégorie.
app/models/category.rb
class Category < ActiveHash::Base
self.data = [
{id: 1, name: '---'},{id: 2, name: 'Femmes'},{id: 3, name: 'Pour des hommes'},{id: 4, name: 'Bébé / Enfants'},{id: 5, name: 'Intérieur / maison / accessoires'},{id: 6, name: 'Livres / musique / jeux'},{id: 7, name: 'Jouets, articles de loisirs'},{id: 8, name: 'Appareils ménagers, smartphones, appareils photo'},{id: 9, name: 'sport, loisirs'},{id: 10, name: 'Fait main'},{id: 11, name: 'Autre'}
]
end
README
De plus, le README de la table et de l'association conçue cette fois est le suivant.
README.md
#Conception de table
##table des utilisateurs
| Column | Type | Options |
| ----------- | ------ | ----------- |
| nickname | string | null: false |
| email | string | null: false |
| password | string | null: false |
| first_name | string | null: false |
| family_name | string | null: false |
| read_first | string | null: false |
| read_family | string | null: false |
| birth | date | null: false |
### Association
- has_many :products
- has_many :item_purchases
- has_many :comments
##table des produits
| Column | Type | Options |
| ------------------- | ---------- | ----------- |
| photo | text | null: false |
| name | string | null: false |
| explanation | text | null: false |
| category | integer | null: false |
| condition | integer | null: false |
| postage_type | integer | null: false |
| prefectures | integer | null: false |
| preparation_days | integer | null: false |
| value | integar | null: false |
| user | references | null: false |
### Association
- belongs_to :user
- has_one :item_purchase
- has_many :comments
- belongs_to_active_hash :category
- belongs_to_active_hash :condition
- belongs_to_active_hash :postage_type
- belongs_to_active_hash :prefectures
- belongs_to_active_hash :preparation_days
- belongs_to :seller, class_name: "User"
## item_table d'achats
| Column | Type | Options |
| ------------- | ------- | ------------------------------ |
| product | integer | null: false, foreign_key: true |
| user | integer | null: false, foreign_key: true |
| purchase_info | integer | null: false, foreign_key: true |
### Association
- belongs_to :user
- belongs_to :product
- belongs_to :purchase_info
##tableau des commentaires
| Column | Type | Options |
| ------- | ---------- | ------------------------------ |
| content | string | null: false |
| user | integer | null: false, foreign_key: true |
| product | integer | null: false, foreign_key: true |
### Association
- belongs_to :product
- belongs_to :user
## purchase_table d'informations
| Column | Type | Options |
| ------------- | ---------- | ------------------------------ |
| postal_code | string | null: false |
| prefectures | integer | null: false, foreign_key: true |
| city | string | null: false |
| address | string | null: false |
| building_name | string | |
| phone_number | string | null: false |
| item_purchase | integer | null: false, foreign_key: true |
### Association
- has_one_active_hash :prefectures
- has_one :item_purchase
Notez la dépendance entre has_one et appartient_to ici.
Si vous avez besoin d'une clé externe, vous devez avoir une association avec appartient_to.
Enfin, la première auto-implémentation a pris beaucoup de temps, mais c'était amusant. Cependant, il a fallu environ 10 heures pour le faire aujourd'hui, alors je ferai de mon mieux pour ne pas être frustré ...