プログラミング学習者のアウトプット 陸
今週から勉強のために、メルカリを参考にしたフリマアプリを作成開始。
今回は今週使用したものを書いていく。
・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が使える。