0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

アソシエーションが理解できなくて頭の中がおっぱぴー

Posted at

アソシエーションを理解したい!!

プログラミング学習を初めて1ヶ月になります。
1ヶ月間、HTML/CSS,Rubyの基礎を勉強してきました。
今現在はRuby on Railsを勉強中です。
Ruby on Railsって覚えること多すぎて
理解が追いついていません。
アソシエーションの概念を十分理解していないまま
カリキュラムを読み進めると頭がおっぱぴーしてました。
ということでアソシエーションをより理解したいので
アソシエーションについての記事を書くことにしました。

アソシエーションとは?

Ruby on Railsにおける、複数のモデルの情報を
取得する際に使用する概念のことです。
一方のモデルからもう一方のモデルにアクセスできるようにします。
モデルに定義することで、そのモデルに紐付く別のモデルの情報へ
アクセスすることができます。

アソシエーション使用方法

twtterを例に例えてみましょう。
twitterにはユーザーを管理するモデル(User)とツィートを管理するモデル(Tweet)が存在します。
(テーブル数はもっとあると思いますが、まだ見習いなんで許してネ。)
(User)はTweetモデルに対して「1対多」、
Tweetモデルはモデル(User)に対して「1対1」の関係性になります。

これは例えばタカシというtwitterアカウント(Userモデル)は
複数ツィート(Tweetモデル)できますが、
ツィート(Tweetモデル)はタカシ(Userモデル)しか出来ないです。

「1対多」の関係性をUserモデルに 

user.rb

has_many :tweets

と記述します。

この場合は
User has many Tweetsの状態といえ、
「Userモデル(タカシ)は多くのTweetモデル(ツィート)を持っている」
ということになります。

「1対1」の関係性をTweetモデルに

tweet.rb

belongs_to :user

と記述します。
この場合は
Tweet belongs to Userの状態といえ、 
「Tweetモデル(ツィート)はUserモデル(タカシ)に属している」
ということになります。

これらの記述により、UserモデルとTweetモデルはテーブルの関連付けが
できます!!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?