Bazen öyle zaman olur ki bir deÄ?ere eriÅ?mek için diÄ?er bir tablonun o alandaki kaydını kullanırız (join).
“Join”i Å?öyle anlatayım, bize gerekli olan alanın deÄ?erini tuttuÄ?umuzu (foreign key) düÅ?ünelim, fakat bizim o deÄ?erinde (tablonun) alanlarına eriÅ?memiz lazım geldiÄ?ini varsayalım.
Bir örnek vermek gerekirse;
a tablosunda b tablosunda bulunan “id” deÄ?erini tuttuÄ?umuzu düÅ?ünelim. Aynı zamanda “b” tablosunda da “c” tablosunda bulunan kayıtların “id” deÄ?erinin tutulduÄ?unu düÅ?ünelim.
a.b_id
b.c_id
İÅ?te bu noktada, a tablosundan “c” tablosunda bulunan alanlara direkt eriÅ?im saÄ?lamak için “through” kullanıyoruz.
Yukarıdaki örnekte verilen a tablosundan “c” tablosunun alanlarına “direkt” eriÅ?im saÄ?lamak için aÅ?aÄ?ıdaki kodları kullanabiliriz.
through olmadan nasıl yapıyorduk?
:through kullanmadan öncelikle “b” tablosunu seçiyor daha sonra “c” tablosuna alanlarına eriÅ?ebiliyorduk.
# model b: belongs_to :c
# c tablosundaki isim alanına eriÅ?mek için
a.b.c.alan
# ----------
# model a: has_many :c, :through :b
# c tablosundaki isim alanına eriÅ?mek için
a.c.alan






