我在数据库表中有值,其颜色代码类似#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'
}
答案 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