>我在数据库表中有值,该表具有 #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