需要在活动管理员中将值转换为名称



>我在数据库表中有值,该表具有 #ffffff 等颜色代码,我希望用简单的单词显示active_admin值。

例如,对于 #ffffff,单词中的值为"白色"。在普通的rails代码中更容易做到,但在DSL的活动管理中,我很困惑。

我尝试了一个基本配置:

      row("Paper Color") { order.colorpaper }

它的值为 #ffffff(如果我在前端选择了"白色")来自 order.colorpaper 模型。

但是在我的prints.rb模型中,也有一个列表,以MY_COLORS连接,通常在正常的轨道配置中使用Prints::MY_COLORS调用。

      MY_COLORS = {
  white:       '#ffffff',
  green:       '#7bd148',
  bold_blue:   '#5484ed',
  blue:        '#a4bdfc',
  turquoise:   '#46d6db',
  light_green: '#7ae7bf',
  bold_green:  '#51b749',
  yellow:      '#fbd75b',
  orange:      '#ffb878',
  red:         '#ff887c',
  bold_red:    '#dc2127',
  purple:      '#dbadff',
  gray:        '#e1e1e1'
}

我正在回答自己如何在活动管理员中做到这一点:

 row "Cover Paper Color" do
       if(order.covercolorpaperpages == '#ffffff')
          "White"
       elsif(order.covercolorpaperpages == '#7bd148')
          "Green"
       elsif(order.covercolorpaperpages == '#5484ed')
          "Bold Blue"
       elsif(order.covercolorpaperpages == '#a4bdfc')
          "Blue"
       elsif(order.covercolorpaperpages == '#46d6db')
          "Turquoise"
       elsif(order.covercolorpaperpages == '#51b749')
          "Bold Green"
       elsif(order.covercolorpaperpages == '#fbd75b')
          "Yellow"
       elsif(order.covercolorpaperpages == '#ffb878')
          "Orange"
       elsif(order.covercolorpaperpages == '#ff887c')
         "Red"
       elsif(order.covercolorpaperpages == '#dc2127')
          "Bold Red"
       elsif(order.covercolorpaperpages == '#dbadff')
          "Purple"
       elsif(order.covercolorpaperpages == '#e1e1e1')
          "Gray"
       else
          "None"
       end

最新更新