我在 Rails 4.2 中有一个可订购的关注点,它有一个恒定的“完成”。app/models/concerns/orderable.rb
:
module Orderable
extend ActiveSupport::Concern
COMPLETE = "Complete"
end
在 Rails 控制台中,我可以运行Orderable.constants
,它返回[:COMPLETE]
。但是,如果我将 Orderable 关注点更改为Rails有关模块中描述的“low-cruft”样式,如下所示:
concern :Orderable do
COMPLETE = "Complete"
end
然后Orderable.constants
在 Rails 控制台中运行返回[]
. Rails 文档说“定义关注点的简单快捷方式……是等价的”。为什么这个单一的改变会导致无法访问模块的常量?我需要以某种方式重新定义它们吗?