0

モデルを更新する正しい方法を知りたいと思っていました。
たとえば、データ メンバーの名前を から に変更したいとlikesnumOfLikesます。

この変数はモデル自体に表示されますが、モデル内schema.rbおよびモデル内にも表示されますdb\migrate\XXX.rb

これらのファイルを手動で変更したところ、次のエラーが発生しました。

未定義のメソッド `numOfLikes' for # Topic:0x3442d88

それで、それを行う正しい方法は何ですか?(データメンバーの削除や追加についても質問しています)

4

1 に答える 1

2

最適な方法は、移行を実行して列の名前を変更することです。これにより、schema.rb ファイルが更新されます。

schema.rb を直接編集するべきではありません。移行ファイルはデータベース上でコマンドを実行するだけであり、一度実行すると変更されてもモデルには影響しません。

Schema.rb はデータベース スキーマの状態を表すものであり、ファイルの内容を変更するだけで制御または変更することはありません。

以下を含む新しい移行:

rename_column :table_name, :likes, :numOfLikes

これにより、データベース内の列の名前が変更され、データベース スキーマが新しい属性名で schema.rb にダンプされます。

于 2012-12-15T13:18:53.983 に答える