需要将值转换为activeadmin中的名称

时间:2013-10-19 09:42:04

标签: ruby-on-rails ruby-on-rails-3 activeadmin

我在数据库表中有值,其颜色代码类似#ffffff,我希望在active_admin中以简单的单词显示值。

例如对于#ffffff,单词中的值为“white”。在普通的rails代码中更简单,但在使用DSL的活动管理员中,我很困惑。

我尝试过基本配置:

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

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

但是在我的prints.rb模型中,还有一个列表,在MY_COLORS中连接,通常在普通的rails配置中使用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'
}

1 个答案:

答案 0 :(得分:0)

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

 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