Rails 5的ActiveRecord :: Migration中的[5.0]是什么意思?

gne*_*kus 20 ruby activerecord ruby-on-rails ruby-on-rails-5

我在Rails 5应用程序中创建的迁移已经5.0传递给了一个方法:

class CreateVariableKeys < ActiveRecord::Migration[5.0]
  ...
end
Run Code Online (Sandbox Code Playgroud)

我想知道这[5.0]意味着什么.

gne*_*kus 15

它是一种类的方法,在这里ActiveRecord::Migration定义.

它允许我们选择我们希望在4.2和之间使用的迁移版本5.0.该方法抛出:

"未知的迁移版本......"

如果将不兼容的版本作为参数传递,则会出错.

生产就绪版本ActiveRecord没有这种方法,因此一旦Rails 5退出测试版就会消失.

  • [Rails 5.0](http://weblog.rubyonrails.org/releases/)于2016年6月30日发布.创建迁移仍然显示版本```class MyMigration <ActiveRecord :: Migration [5.0]```.运行```bundle show activerecord```返回```/ Users/username/.rvm/gems/ruby​​-2.3.0/gems/activerecord-5.0.0``` (5认同)

And*_*rew 6

此博客也有更多信息

它似乎存在,因此当从rails 4移动到rails 5时,您不必升级旧的迁移.(迁移API中有一些小的更改).