我有一个使用UPPERCASE表列访问旧数据库的rails程序。
我希望能够输入user.firstname而不是user.FIRSTNAME
如何让ActiveRecord检索这些列名的小写版本以允许我在模型中使用小写属性?
答案 0 :(得分:0)
使用迁移更改列名可能更容易。否则,您将不得不更改正在使用的宝石,然后将它们打包在供应商/宝石中,以便在它们降级时保持不变。
对于每张桌子:
rename_table :OLD_NAME, :new_name
对于每一栏:
rename_column :COLUMN_NAME, :column_name
您可能不必更改表的名称,fyi - 您可能会收到有关更改表名的错误。我从来没有更改过表名,所以我不知道这是否有效。如果不改变列名,就没有问题。
答案 1 :(得分:0)
如果更改列名不可行,这可能是处理此问题的最佳方法:https://github.com/reidmix/legacy_mappings