Существует два способа написания полиморфной миграции в Rails. В общем, я сделал это:
class CreateFeatures < ActiveRecord::Migration
def change
create_table :features do |t|
t.integer :featureable_id
t.string :featurable_type
t.timestamps
end
end
end
Однако мы также можем сделать это:
class CreateFeatures < ActiveRecord::Migration
def change
create_table :features do |t|
t.references :featureable, :polymorphic => true
t.timestamps
end
end
end
Эти два, для всех практических целей, идентичны. Мой вопрос: Один лучше другого? Лучше ли для будущей ремонтопригодности?
Это, вероятно, будет проблемой, только если одна из двух вещей изменилась:
- Версия полиморфной абстракции (версия # 2) исчезнет или синтаксис изменится
- Метод работы полиморфных отношений (с использованием идентификатора и типа) меняется - маловероятно
Просто интересно, есть ли предпочтение, или это "Мех, на самом деле не имеет значения в любом случае"