class Item < ActiveRecord::Base
def duration
raise NoMethodError
end
def duration=(value)
raise NoMethodError
end
end
class Talk < Item
def duration
read_attribute(:duration)
end
def duration=(value)
write_attribute(:duration, value)
end
end
Ты всегда мог это сделать, но это много работы даром. Что хуже всего случится, когда вы прочитаете длительность на предмете? Вы получите ноль, что вскоре приведет к сбою. Вам не нужно беспокоиться об этих типах проблем в Ruby.
При необходимости вы можете создать модуль и включить модуль в два класса для общего поведения и отбросить STI.