有一个表Fans
,其列id
和color
使用枚举,因此{ "blue": 0, "yellow": 1 }
和db只存储整数值。
Fan.all.map {|fan| fan.attributes}
返回一个散列数组,其中颜色仍为整数形式。如何获取颜色字段映射到文本中的哈希数组?
答案 0 :(得分:0)
df1 <- df %>% rowwise() %>%
do(data.frame(Seller=.$Seller,
Buyer=.$Buyer,
Qty=.$Qty,
DateTimeCurr=seq(from=.$DateTimeFrom, to=.$DateTimeTo, by="hour"))) %>%
group_by(Seller, Buyer, DateTimeCurr) %>%
summarise(TotalQty=sum(Qty)) %>%
mutate(id=paste0("Qty", Seller, Buyer))
cast(df1, DateTimeCurr~ id, value="TotalQty")
会为您提供哈希:Fan.colors
和
{ "blue": 0, "yellow": 1 }
因此,要获取颜色文本,您可以构建这样的哈希:
my_fan = Fan.find(123)
my_fan[:color] # Returns the integer value of color
这是微不足道的(只是用原始枚举哈希中的值交换键)
然后,当您遍历new_color_hash = { '0': "blue", "1": "yellow" }
属性时,只需调用:
Fan
获取此特定new_color_hash[my_fan[:color].to_s]
实例颜色的文本表示。
这可行,但这不是一个非常好看的实现。