Pocket

こんばんは、Tech campでプログラミング学習をやってます。

学んだことのアウトプットということで、気になる単元について書いていこうと思います。

今日の題目は、アソシエーションについて。

Association 【名】つながり、関連(性)、連関、連想(性) 協会、組合

提携、同盟、合同、連合

英辞郎より引用

まずは意味から入ろうと思い、調べてみました。つながりや、関連性を持たせるということで

Ruby on rails上の意味では、「モデル同士を関連づけること」と習ったので、英単語と同義ということですね。

とある掲示板的なアプリケーションがあったとして、次のような機能を持っていたとします。

  1. ユーザーはアカウントを登録すれば、自由にコメントを投稿できる。
  2. ユーザー同士で、とあるコメントに対して、返信したりできる。

とってもシンプルな機能ですね。これらのデータを格納するテーブルは、少なくとも

  • ユーザー情報を管理するテーブル : Userモデルのusersテーブル
  • コメントを管理するテーブル : Commentモデルのcommentsテーブル

の2つが必要そうです。

さて、アプリケーション管理者のあなたは、「誰が何のコメントをしたか分かるようにしないと、訳わかんないな」と考えます。

こんなときに、アソシエーションが登場します。

ここまで書いていて、もっと見やすくしたい気持ちが凄まじく芽生えているので、また次回にしますね。ありがとうございました。

【余談】Wordpressでどうやってやるのか調べたいこと

  • 段落分けってどうやってやるんでしょう -> 一つのブロック内で改行したい
  • コードサンプルをわかりやすい見た目にしたい
  • 引用のルールとか。図は自分で作らないといけない?簡単に作る方法
# review.rb
class Review < ActiveRecord::Base
  belongs_to :product
end

# product.rb
class Product < ActiveRecord::Base
  has_many :reviews
end