如何使用特殊字符创建枚举。例如,我想为" blood_group"创建一个枚举。其值包括O +,O-,A +,A-等。我可以有一个帮助方法,将枚举转换为所需的字符串表示形式(例如,我可以将" o_positive"转换为" O +",但是有更简洁的方法可以做此?
答案 0 :(得分:0)
通常会以某种方式实现枚举
enum status: [ :active, :archived ]
然后像
一样使用Article.active
Article.active?
Article.active!
因此,通过包含符号,您将得到类似的内容:
Blood.O+ || Blood.O-
这被认为不起作用,因为我们假设您通常使用添加或减去。即使是其他变量,也不能写my-variable
,它必须是my_variable
。
所以,只需将+
和-
视为保留字符。
答案 1 :(得分:0)
使用此代码:
class Conversation < ActiveRecord::Base
enum blood_group: ["O+", "O-","A+","A-"]
end
class ApplicationController < ActionController::Base
helper_method :method_name
def convert(str)
sym= nil
a= str.split("_")
if str.split("_").last == "positive"
sym = "+"
else
sym = "-"
end
return (str.split("_").first + sym).upcase
end
end