class Person < ActiveRecord::Base
belongs_to :parent, class_name: 'Person'
has_many :children, class_name: 'Person', foreign_key: :parent_id
has_many :grandchildren, class_name: 'Person', through: :children, source: :children
end
Я хочу, чтобы эта модель работала таким образом (неважно, как):
grandfather = Person.create(name: "Grandfather")
father = Person.create(name: "Father", parent: grandfather)
son = Person.create(name: "Son", parent: father)
grandfather.children.map(&:name)
=> ['father']
grandfather.grandchildren.map(&:name)
=> ['Son']
Так что идея состоит в том, чтобы вывести имя ребенка из заглавной буквы. Я могу использовать обратные вызовы или переопределить метод получения атрибута имени, но это относится как к детям, так и к внукам, так что это не главное.