昨天我问了一个关于Rails 4 Enum的quiostion并得到了答案。
所以我在Status
中定义了全局#app/models/concerns/my_enums.rb
枚举,如下所示:
module MyEnums
extend ActiveSupport::Concern
included do
enum status: [:active, :inactive, :deleted]
end
end
现在我试图从控制器获取我的Status
枚举中的所有已定义属性,无法访问枚举,因为它在包含模块时初始化,如果我将它包含在我的控制器中,我将收到此错误:
undefined method `enum' for HomeController:Class
如何在我的控制器中获取此信息(如Product.statuses)?
=> {"active"=>0, "inactive"=>1, "deleted"=>2}
答案 0 :(得分:1)
您不能将此模块包含在控制器中。但是你可以尝试:
module MyEnums
extend ActiveSupport::Concern
Statuses = [:active, :inactive, :deleted]
included do
enum status: Statuses
end
end
然后在控制器中:
MyEnums::Statuses