输入图片描述
当我在rails指南中阅读这个时,它让我很困惑,根据这个,下面的User类可以加载吗?
因为在Admin中没有User常量,所以rails假设User是一个相对常量,因此类User可以被加载?这太令人困惑了
class User
end
module Admin
end
Admin::User # can load User?
在Ruby 2.5之前它是可以工作的
Admin::User
将被加载,因为Ruby会在Admin的作用域中查找User,然后当它找不到它时,它会继续在顶层作用域中查找(Object -并且那里确实定义了User)。但是这种行为在较新的Ruby版本(2.5+)中已被弃用,所以不-它将不起作用。
没有Ruby on Rails将无法在您的示例中加载Admin::User
,因为Admin::User
在您的示例中没有定义。