私は、大文字のテーブルの列を持つ従来のデータベースにアクセスしているレールプログラムを持っています。小文字列のリターンモデル
私はuser.firstname入力できるようにしたいではなくuser.FIRSTNAME
どのように私はActiveRecordのは私がモデルに小文字の属性を使用できるようにするためにこれらの列名の小文字のバージョンを取得するのですか?
私は、大文字のテーブルの列を持つ従来のデータベースにアクセスしているレールプログラムを持っています。小文字列のリターンモデル
私はuser.firstname入力できるようにしたいではなくuser.FIRSTNAME
どのように私はActiveRecordのは私がモデルに小文字の属性を使用できるようにするためにこれらの列名の小文字のバージョンを取得するのですか?
移行で列名を変更する方が簡単かもしれません。それ以外の場合は、使用している宝石を変更してから、それらが劣化するにつれてベンダー/宝石に梱包してください。各テーブルについて
を移行:
rename_column :COLUMN_NAME, :column_name
:各列について
rename_table :OLD_NAME, :new_name
テーブルの名前を変更する必要はないかもしれませんが、テーブル名の変更についてはエラーが発生することがあります。私はテーブル名を変更したことがないので、これがうまくいくかどうかわかりません。カラム名を変更すると問題はありません。
列名を変更することが可能でない場合、これはおそらく、これに対処するための最良の方法である:https://github.com/reidmix/legacy_mappings
私はデータベースがあれば破損する可能性が他のソフトウェアによってアクセスされるよう、列名を変更すると、オプションであると思ういけません私はそれらを変える。確かに、モデルがすべての属性を小文字に変換する方法が必要ですか? –
あなたはこれについて間違ったやり方をしています。悪いデータベースに合わせてアクティブなレコードを変更しないでください。あなたはmysqlをダムし、テーブル名を変更します。 – s84
アクティブなレコードを変更したい場合は、まずアクティブなレコードの梱包を解凍します。次に、Rubyモデルのマッピング方法を調べてください。 – s84