LoginSignup
0
0

More than 5 years have passed since last update.

Active Recordのhas_and_belongs_to_manyとhas_many :throughについてもくもく考える会その2

Posted at

はじめに :tea: :feet:

こんばんは。
今日ももうこんな時間になってしまいました。 :night_with_stars: :sleeping:
has_many :through について読むことを目標にしつつ、
Dockerを勉強するために最近本腰を入れて入門したRustで折角だからと小さいソフトウェアを開発していたり(完全に has_many :through を読むのに疲れてしまい寄り道していたという反省)、朝測った体重が増加していたことにショックを受けたりと色々あった1日でした。

よんだ :eyes: (理解したとは言えないのは私の不徳の致すところ

結果というなの感想ふわっと :eyes: :sunflower:

  • has_and_belongs_to_many になかった through についてのReflectionを作成している。気合(のようなもの)を入れて読む必要がある。 一つのファイルに複数classを定義しているのを何度か見かけているのだけど自分の現在関わっているrailsプロジェクトではあまり見ない。自分も参加してから覚えている限りそういうファイルを書いたことがない。どういう時に複数クラスを一つのファイルに定義すると効果的なんだろう?

https://github.com/rails/rails/blob/master/activerecord/lib/active_record/reflection.rb#L19
https://github.com/rails/rails/blob/master/activerecord/lib/active_record/reflection.rb#L768

  • delegateしてる。なんとなく :through がやってることに気づいた気がする・・・

https://github.com/rails/rails/blob/master/activerecord/lib/active_record/reflection.rb#L769
https://github.com/rails/rails/blob/fc5dd0b85189811062c85520fd70de8389b55aeb/activesupport/lib/active_support/core_ext/module/delegation.rb#L200

力尽きた感ある。:(´ཀ`」 ∠):

でもなんとなく has_and_belongs_to_many より :through の実装は delegate してることが主なんだな。
だから、関連を持ったモデルのattributeにアクセスできるのかとふわっとイメージできた。

昨日と今日でふたつの多対多実装を読んでみた。
どちらがどうだという理解までまとめるのいけるのか?と不安になってきた。
明日は別のテーマにして少し軽いものをはさみたい気持ち。。

では良い夜をおやすみなさい。
Happy coding! :sleeping:

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