誰かが次のことの違いを教えてください。
- デフセルフアップ
- デフアップ
- def self.down
- デフダウン
self.upまたup、移行時に移行によって実行されるコードが含まれていますrake db:migrate。self.upの古いバージョンですup。彼らがこれをいつ導入したかはわかりませんが、3.0 まではself.up.
self.downdownメソッドの効果を逆にするコードを含める必要がありますup。そのため、 でテーブルを作成した場合は、upそのテーブルを でドロップする必要がありますdown。これらのメソッドは、実行時に呼び出されますrake db:rollback。
実際にchangeは、テーブルの作成など、実行していることの反対をレールが簡単に判断できる場合に通常使用される、移行に関する新しいメソッドが呼び出されます。
def self.upはクラスメソッドです (クラスに送信できます: Klass.up)、def up通常のメソッドです (オブジェクトに送信できます)。ダウンも同じ。