2014-09-20 113 views
0

昨天我问了一个关于Rails 4 Enum的quiostion,并得到了答案。Ruby on Rails:从include变量做

所以我一直在#app/models/concerns/my_enums.rb定义的全局Status枚举这样的:

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} 

回答

1

您不能将此模块包含到您的控制器中。然而,你可以尝试:

module MyEnums 
    extend ActiveSupport::Concern 
    Statuses = [:active, :inactive, :deleted] 

    included do 
    enum status: Statuses 
    end 

end 

然后在控制器:

MyEnums::Statuses 
+0

感谢。这么简单,很棒的解决方案)) – 2014-09-20 13:12:43