Я реализую наследование одной таблицы внутри Rails.Вот соответствующая миграция:
class CreateA < ActiveRecord::Migration
def self.up
create_table :a do |t|
t.string :type
end
end
Класс B наследуется от A:
class B < A
end
Теперь легко получить все экземпляры класса B:
B.find(:all)
или
A.find_all_by_type("B")
Но как мне найти все экземпляры класса A (те, которые не относятся к типу B)?Это плохая организация?
Я пробовал это:
A.find_all_by_type("A")
Но экземпляры класса A имеют тип nil
.Я мог бы сделать
A.find_all_by_type(nil)
, но это как-то не правильно.В частности, он перестал бы работать, если бы я решил сделать наследование A от другого класса.
Было бы более целесообразно определить значение по умолчанию для: type в миграции?Что-то вроде:
t.string :type, :default => "A"
Я что-то здесь не так делаю?