Я пытаюсь реализовать множественное наследование таблиц с помощью ActiveRecord. Похоже, все доступные драгоценные камни довольно старые. Я что-то упускаю? Есть ли «родной» способ реализовать это с помощью activerecord? Я использую Rails 3.2.3 и 3.2.1 ActiveRecordМножественное наследование таблиц Rails и activerecord
ответ
Single Table Inheritance (где каждый автомобиль и грузовик доля одна базы данных)
class Vehicle < ActiveRecord
end
class Car < Vehicle
end
class Truck < Vehicle
end
В вашем случае, если вы не разделяете базу данных, а скорее функции. Затем вы должны написать модуль и включить его в каждой модели
class Car < ActiveRecord
extend VehicleFinders
end
class Truck < ActiveRecord
extend VehicleFinders
end
module VehicleFinders
def find_purchased
#...
end
end
Таким образом, в методе extend
модуля являются метод класса по этому вызывающему классу. Методы include
модуля являются методом экземпляра для объекта вызова класса
Это может быть хорошим чтением для вас http://raysrashmi.com/2012/05/05/enhance-rails-models
Ссылки больше не работают. – zode64
новая ссылка http://raysrashmi.com/2012/05/05/enhance-rails-models без .html в конце –
Существует много путаницы среди разработчиков, касающихся точных различия между несколькими табличными-наследованиями против одного-стол- inheritance vs class-table-inheritance. Я думаю, что важно определить, на что вы полагаете, что имеете в виду, прежде чем я смогу правильно дать вам ответ. Это определенно тема, представляющая для меня интерес, поэтому, пожалуйста, разместите обновление, если у вас есть какая-либо новая информация. :) –