プログラミング学習者のアウトプット 陸

今週から勉強のために、メルカリを参考にしたフリマアプリを作成開始。

今回は今週使用したものを書いていく。

 

JavaScriptのイベントでCSSを変更

 $(this).css({"background-color": red}); とすると、イベント発火箇所の背景を赤に変更できる。

 

・dependent: :destroy

 これを記述したモデルを削除した時に、これを付与したリレーション先も同時に削除できるようになる。

 例)

  class User << ApplicationRecord

         has_many :images, dependent: :destroy

       end

 →Userを削除したと同時にimageも削除される。

 

・自己結合

 データベースで自分自身に関連付けたい場合に使用する。これを使うと、全従業員を格納したデータベース内でさらに、上司と部下のような関連性も持たせることができる。今回は商品データベース内に販売者(seller)と購入者(buyer)を作るために使用した。

 例)itemデータベース内にseller(ユーザーの内の一人)を作成する

 userモデル:

  has_many:seller_item, foreign_key:"seller_id", class_name:"Item"

  を記述。

 itemデータベース:

  t.references :seller, foreign_key: {to_table: :users}

  を記述する。sellerテーブルは存在しないため、foreign_key: trueとして

  しまうとエラーになる。よって手動で設定する必要がある。

 itemモデル:

  belongs_to seller, class_name: "User", foreign_key: "seller_id"

  を記述。

 これでsellerが使える。