0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[解答]rails にカート機能を追加する-モデル部分

Last updated at Posted at 2020-09-09

購買者購入履歴のためのモデルを作る

ターミナル
$ rails g model UserProduct

モデルとマイグレーションファイルができたと思うので、マイグレーションファイルを編集する

db/migrate/20190831095111_create_tags.rb
class CreateUserProducts < ActiveRecord::Migration[5.2]
  def change
    create_table :user_products do |t|
      t.integer :user_id #購入者
      t.integer :product_id #商品
      t.integer :lot #買った個数
      t.timestamps
    end
  end
end

編集し終えたら、データベースを更新するためにマイグレーションをかける

ターミナル
$ rails g db:migrate

購買者購入履歴の関係をmodelで定義する。
・あるユーザーは多くの購買者購入履歴(買った商品)を持っている
・ある商品は多くの購買者購入履歴(買ったユーザー)を持っているので
多対多の関係

app/model/user.rb
class User < ApplicationRecord
	devise :database_authenticatable, :registerable, :recoverable,
	 :rememberable, :trackable, :validatable, :confirmable
	has_many :products
	has_many :user_products
end
app/model/product.rb
class Product < ApplicationRecord
	belongs_to :user
	has_many :user_products
end
app/model/user_product.rb
class UserProduct < ApplicationRecord
	belongs_to :user
	belongs_to :product
end
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?