ruby-on-rails - Rails Migration Change vs Up & Down 方法

标签 ruby-on-rails ruby rails-activerecord rails-migrations

我正在阅读 Rails Test Prescriptions 这本书,在设置过程中它要求我将迁移文件更改为以下内容:

class ProjectUserJoin < ActiveRecord::Migration
  def self.up
    create_table :projects_users, :force => true, :id => false do |t|
      t.references :project
      t.references :user
      t.timestamps
    end
  end

  def self.down
    drop_table :projects_users
  end
end

看来我在 Rails (4.0.0) 上使用的版本比本书(2 或 3.x)更高,我的迁移文件如下所示:

class ProjectUserJoin < ActiveRecord::Migration
  def change
  end
end

如何编辑 change 方法以实现与上述 up 和 down 方法相同的效果?到目前为止,我已经尝试使用 up 和 down 而不是 self.up 和 self.down 并复制相同的代码。那没起效。

谢谢!

最佳答案

只需将 def change 更改为 def self.up 内容即可。

您可以通过在控制台运行 rake db:migrate 来检查结果 - 它将创建表(self.up 功能)和 rake db:rollback - 它将删除表(self.down 功能)。

关于ruby-on-rails - Rails Migration Change vs Up & Down 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890510/

相关文章:

html - 在普通图像之前加载 CSS 背景图像?

ruby-on-rails - 使用 kaminari 进行太阳黑子分页

ruby-on-rails - 一个存储文件的地方(Ruby on Rails)

ruby - key : value vs key :value in ruby?

ruby-on-rails - ruby /rails : Can't get controller to insert new value into DB

ruby-on-rails - 使用 ActiveRecord 关联生成模型

javascript - ajax 调用后将 bool 值重置为 false

ruby-on-rails - $redis 全局变量与 ruby​​ on rails

ruby-on-rails - rails : Passing API Keys to the Controller

ruby-on-rails - Rails - 跨 3 个表的事件记录联接