ruby-on-rails - 如何理解“ActiveRecord::Migration[5.2]”rails / ruby
问题描述
ActiveRecord
是一个类ActiveRecord::Migration
是一个模块[5.2]
是一个数组Float
但是什么意思ActiveRecord::Migration[5.2]
?
解决方案
Ruby 允许你定义这样的[]
方法:
class Foo
def [](bar)
puts bar
end
end
然后你可以这样做:
x = Foo.new
foo["baz"] # prints baz
这也适用于类方法[]
,而不仅仅是实例:
class Foo
def self.[](bar)
puts bar
end
end
现在Foo["a"]
打印一个。
Rails 通过这里的代码利用了这一点:https ://github.com/rails/rails/blob/66cabeda2c46c582d19738e1318be8d59584cc5b/activerecord/lib/active_record/migration.rb#L543
因此,[5.2]
在您的示例中,它不是一个内部带有浮点数的数组,而是对ActiveRecord::Migration.[]
以 5.2 作为参数的方法的调用。
推荐阅读
- python - 通过 Python 运行手部检测模型 tensorflow-lite
- python - Beautifulsoup 多个 div 内容到字典
- java - Spring Boot 中的 Log4j2 未使用 XML 文件中的模式
- javascript - 每个按钮的 div 块
- c - 在向量、SEI 和 intflags 仍然设置后,中断停止执行。(AtMega4809)
- python - 无法适应 GaussianNB - ModuleNotFoundError: No module named 'sklearn.utils._pprint'
- android - 模拟器:模拟器:错误:AdbHostServer.cpp:93:无法连接到端口上的 adb 守护进程:5037 下午 1:20
- c# - Azure 函数 (IHttpClientFactory) 的模拟失败
- android - 添加具有此错误的依赖项后,有人知道如何解决吗?
- debugging - 如何检测 GDB 命令文件中的断点并停止执行?