2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

どうも、豆腐メンタルです。
最近、RubyやったりJavascriptだったり、いまいち何をやりたいか定まっていないながら
今回はRubyについて書きたいと思います。

久しぶりにRuby,Rails触ったら思いの外知識が抜けていました...

アソシエーションとは

Railsのアソシエーションとは、モデル(テーブル)同士の繋がりを定義する仕組みです。
これを使うことで、複雑なSQLを書かずに直感的にデータを取得できるようになります。

なぜ「アソシエーション」が必要なのか?

結論、「DBとのやり取りをサボるため」

本来、別々のテーブルにあるデータを紐づけるには、複雑なSQLを書かなければなりません。
しかし、Railsのモデルに
has_many
belongs_to
と一言添えるだけで、Railsが「あ、このテーブル同士は仲良しなんだな」と理解して、面倒なデータ取得をすべて肩代わりしてくれるようになります。

具体例

例として、動画投稿サイトを作るとしましょう
動画投稿サイトをRailsで作る場合、「User(投稿者)」と「Video(動画)」という2つのモデルが登場します。

1人の投稿者は、たくさんの動画をアップロードできる
→has_many
1本の動画は、1人の投稿者に紐付いている
→belongs_to

# 投稿者側
class User < ApplicationRecord
  # 投稿者は多くの投稿動画を持つ
  has_many :videos
end

# (動画側)
class Video < ApplicationRecord
  # 動画は特定の投稿者に属している
  belongs_to :user
end

するとどうなる?

この設定をすることにより、コントローラーやビューの中で
モデルに紐づくDBの値を取ってくることができます
はえ〜便利

最後に

当時、プログラミング学習を初めてやった時は
この「アソシエーション」の仕組みがわかっていなかった。
概念的なものではなんとなーくわかったつもりではいたけども、理解は浅かったかなと思ってます。

では、また次回...(いつになるかな)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?