Bueno, la mayor parte del tipo es realmente es inteligente: la convención sobre la configuración tiene algunos beneficios muy reales. ;-)
Donde la convención no funciona, como en su caso, hay (probablemente - al menos, siempre he encontrado una hasta ahora ...) una forma de evitarlo. Para los esquemas heredados hay un par de posibilidades que vienen inmediatamente a la mente.
- Cree una vista de tabla única en su base de datos heredada que reasigna columnas para evitar los nombres convencionales de AR. No sirve de mucho si no tiene permisos CREATE VIEW en el DB, por supuesto, o si su DB no tiene vistas;
- anular el uso de
:type
como el indicador STI usando set_inheritance_column
, así
class LegacyValue < ActiveRecord::Base
set_inheritance_column 'does_not_have_one'
end
Uso set_inheritance_column: esa es tu mejor apuesta. –