2014-09-10 103 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)