こんばんは、Tech campでプログラミング学習をやってます。
学んだことのアウトプットということで、気になる単元について書いていこうと思います。
今日の題目は、アソシエーションについて。
Association 【名】つながり、関連(性)、連関、連想(性) 協会、組合
提携、同盟、合同、連合
英辞郎より引用
まずは意味から入ろうと思い、調べてみました。つながりや、関連性を持たせるということで
Ruby on rails上の意味では、「モデル同士を関連づけること」と習ったので、英単語と同義ということですね。
とある掲示板的なアプリケーションがあったとして、次のような機能を持っていたとします。
- ユーザーはアカウントを登録すれば、自由にコメントを投稿できる。
- ユーザー同士で、とあるコメントに対して、返信したりできる。
とってもシンプルな機能ですね。これらのデータを格納するテーブルは、少なくとも
- ユーザー情報を管理するテーブル : 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