Ruby on Rails集中了ENUM

时间:2014-09-10 20:41:21

标签: ruby-on-rails ruby enums

我有一类物品可以说:

  • 已售出
  • 在店里
  • 即将推出

每个项目都记录在数据库中,如下所示:

  • item.category = 0表示已售出
  • item.category = 1 for shop
  • 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 个答案:

答案 0 :(得分:1)

您可以将枚举放在帮助程序类中,例如application_helper.rb,位于app文件夹中的helpers文件夹下。

我认为从rails 3.2开始?所有控制器和视图中都提供了所有助手

例如,将以下内容添加到application_helper.rb文件中应该允许您使用

get_category(0)

在任何视图中返回“已售出”

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

  }.freeze

  def get_category(arg)
    CATEGORY[arg]
  end