Ruby on rails RubyonRails:从include do获取变量
昨天我问了一个关于Rails 4枚举的问题,得到了答案 因此,我在Ruby on rails RubyonRails:从include do获取变量,ruby-on-rails,ruby,ruby-on-rails-3,enums,Ruby On Rails,Ruby,Ruby On Rails 3,Enums,昨天我问了一个关于Rails 4枚举的问题,得到了答案 因此,我在#app/models/concerns/my_enums.rb中定义了全局状态枚举,如下所示: module MyEnums extend ActiveSupport::Concern included do enum status: [:active, :inactive, :deleted] end end 现在,我试图从控制器获取我的状态枚举中的所有已定义属性,无法访问枚举,因为它在包含模块时初始化
#app/models/concerns/my_enums.rb
中定义了全局状态
枚举,如下所示:
module MyEnums
extend ActiveSupport::Concern
included do
enum status: [:active, :inactive, :deleted]
end
end
现在,我试图从控制器获取我的状态
枚举中的所有已定义属性,无法访问枚举,因为它在包含模块时初始化,如果我将其包含在控制器中,我将收到以下错误:
undefined method `enum' for HomeController:Class
如何在控制器中获取此信息(如Product.Status)
您不能将此模块包括到控制器中。但是,您可以尝试:
module MyEnums
extend ActiveSupport::Concern
Statuses = [:active, :inactive, :deleted]
included do
enum status: Statuses
end
end
然后在控制器中:
MyEnums::Statuses
谢谢如此简单和伟大的解决方案)
MyEnums::Statuses