6

誰かが次のことの違いを教えてください。

  1. デフセルフアップ
  2. デフアップ
  3. def self.down
  4. デフダウン
4

2 に答える 2

11

self.upまたup、移行時に移行によって実行されるコードが含まれていますrake db:migrateself.upの古いバージョンですup。彼らがこれをいつ導入したかはわかりませんが、3.0 まではself.up.

self.downdownメソッドの効果を逆にするコードを含める必要がありますup。そのため、 でテーブルを作成した場合は、upそのテーブルを でドロップする必要がありますdown。これらのメソッドは、実行時に呼び出されますrake db:rollback

実際にchangeは、テーブルの作成など、実行していることの反対をレールが簡単に判断できる場合に通常使用される、移行に関する新しいメソッドが呼び出されます。

于 2013-02-07T08:54:36.263 に答える
4

def self.upはクラスメソッドです (クラスに送信できます: Klass.up)、def up通常のメソッドです (オブジェクトに送信できます)。ダウンも同じ。

于 2013-02-07T08:51:41.010 に答える