2014-09-20 106 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