Bu yazıda bir modeli kendi ile nasıl ilişkilendirebilir sorumuza cevap bulacağız. Bunun en yaygın kullanıldığı alanlardan birini senaryo olarak seçtim.  Bir haber sistemi yaptığımızı düşünürsek kategorilemeye ihtiyacımız var. Bu kategorilerin de alt ve üst(sahip) kategorileri mevcut olacak. Çözümümüz de kendi ile ilişkili model yapmak. Şöyle ki;

Halihazırda bir kategori (Category) modelimiz olduğunu düşünelim. Şu komut ile migration oluşturalım:
rails g migration AddParentToCategory
/db/migrate dizininde oluşturulan migration dosyasında category modeline (categories tablosuna) parent_id sütununu ekleyeceğiz.

Daha sonra rake db:migrate diyerek migrate edelim.
Sıra geldi ilişkileri kurmaya. app/model/category.rb model dosyasına aşağıdaki eklemeleri yapacağız.

has_many – belongs_to ilişkisini kurduğumuzda işlem tamamlanmış oluyor. Ben ayrıca has_parent? ve has_children? methodlarını üst kategorisi var mı veya alt kategorileri var mı gibi sorgular için pratikleştirmek adına ekledim. parent_name methodu ise eğer üst kategorisi varsa adını döndürüyor. (Dikkat! sizinki :name olmayabilir)