Rails 指南中的 Rails 合格参考是什么意思?
What is Rails qualified reference mean in Rails Guide?
enter image description here
我在rails指南中看到这个让我困惑了很久,根据这个,下面的用户class可以加载吗?
因为Admin中没有User常量,所以rails假设User是一个相对常量,这样classUser就可以加载了?好迷惑
class User
end
module Admin
end
Admin::User # can load User?
Rails 上的 Ruby 将无法在您的示例中加载 Admin::User
,因为您的示例中未定义 Admin::User
。
直到 Ruby 2.5 它曾经工作
Admin::User
将被加载,因为 Ruby 会在 Admin 的范围内查找用户,然后当找不到它时 - 它会继续在顶级范围内查找(对象 - 确实定义了用户).
但这种行为是 deprecated in newer Ruby versions (2.5+),所以不行 - 它不会起作用。
enter image description here
我在rails指南中看到这个让我困惑了很久,根据这个,下面的用户class可以加载吗?
因为Admin中没有User常量,所以rails假设User是一个相对常量,这样classUser就可以加载了?好迷惑
class User
end
module Admin
end
Admin::User # can load User?
Rails 上的 Ruby 将无法在您的示例中加载 Admin::User
,因为您的示例中未定义 Admin::User
。
直到 Ruby 2.5 它曾经工作
Admin::User
将被加载,因为 Ruby 会在 Admin 的范围内查找用户,然后当找不到它时 - 它会继续在顶级范围内查找(对象 - 确实定义了用户). 但这种行为是 deprecated in newer Ruby versions (2.5+),所以不行 - 它不会起作用。