2014-09-10 71 views
0

我有一個項目類別可以說:Ruby on Rails的集中ENUM

  • 銷售
  • 在店
  • 即將

每一個項目都記錄在數據庫如下:

  • item.category = 0售出
  • item.category = 1店
  • item.category = 2即將

今天我做如下:

<% if item.category = 0 %>Sold<% end %> 
<% if item.category = 1 %>in shop<% end %> 
<% if item.category = 2 %>coming soon<% end %> 

有沒有辦法集中用於枚舉所有我應用程序,所以它可以在任何這樣的頁面:

<% if SOLD %>Sold<% end %> 

回答

1

你可以把枚舉放在助手類,如application_helper.rb下應用程序文件夾中的助手文件夾。

我認爲從rails 3.2開始?所有的助手在所有可用的控制器和視圖

例如添加以下到您application_helper.rb文件應允許您在「賣」

CATEGORY = { 
    0 => "Sold", 
    1 => "in Shop", 
    2 => "comming soon" 

    }.freeze 

    def get_category(arg) 
    CATEGORY[arg] 
    end 
任何視圖返回使用

get_category(0)