アソシエーションって何?
アソシエーションは、テーブル同士のデータを関連づける手法のことです。
これだけだと分かりにくいと思うので、「Twitter」を例に説明します。
Twitterは、複数の「データ」を利用しています。
まずは「ユーザー情報」というデータ、続いて「ツイート情報」というデータ、さらには「ツイートに対するコメント」のデータもあります。
これらのデータは、各カテゴリーに分けられて、アプリケーションのデータベースというところに綺麗に保管されています。
この「ユーザー情報」といったカテゴリーごとに分けられているデータの集まりをテーブルと言います。
各テーブルには、モデルというデータの管理人が1人ついています。
基本的には、1人のモデルに対して1つのテーブルしか扱うことができないのですが、アソシエーションを使用することで、他のモデルが管理しているテーブルのデータも使用することができます。
アソシエーションの記述方法は、各モデル内にhas_manyメソッドか、belings_toメソッドのどちらかを定義します。
has_manyメソッドは「1対多」。
例えば、1ユーザーに対する複数の投稿ツイートのような関係を示します。
そして、belongs_toメソッドは「1対1」
1つのツイートから見ると、ユーザーは1人しかいないような関係を表します。
このように、そのモデルの役割に応じてアソシエーションを定義してあげることによって、テーブル間のデータのやり取りができるようになり、アプリの機能を充実させることができます。