ActiveRecord :: Migration类名中的方括号?

时间:2018-06-13 19:48:05

标签: ruby-on-rails ruby

在Ruby on Rails 5.2中,迁移文件包含一个类似于此的类。

class MyMigration < ActiveRecord::Migration[5.2]

我知道[5.2]语法指定了迁移所针对的rails的版本,但我不明白这是如何工作的。 Migration[5.2]不是有效的Ruby类名。

这个方括号语法是什么,它是如何不导致ruby语法错误的?

1 个答案:

答案 0 :(得分:2)

Ruby对象可以有[]个方法。它们在Array类中使用,但任何类都可以实现它们。

def []()
  ...
end

由于类是完整对象,因此它们也可以使用方括号方法。