Ruby on Rails:从include do获取变量

时间:2014-09-20 12:41:37

标签: ruby-on-rails ruby ruby-on-rails-3 enums

昨天我问了一个关于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} 

1 个答案:

答案 0 :(得分:1)

您不能将此模块包含在控制器中。但是你可以尝试:

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

  included do
    enum status: Statuses
  end

end

然后在控制器中:

MyEnums::Statuses