在常量名称中使用变量
Using a variable in constant name
我有三个常量:
MUTUAL_CATEGORIES
PROVIDER_CATEGORIES
RECEIVER_CATEGORIES
以及引用类别的方法
def do_some_stuff_with_mutual
MUTUAL_CATEGORIES ...
end
我想抽象这个方法,这样我就可以做类似的事情:
do_some_stuff_with(MUTUAL)
def do_some_stuff_with(type)
(type + "_CATEGORIES") ...
end
如何将字符串转换为引用常量?
Object.const_get(type + "_CATEGORIES")...
将 Object
替换为定义常量的 class
这可能不是个好主意,但您也可以使用 eval:
do_some_stuff_with(MUTUAL)
def do_some_stuff_with(type)
eval(type + "_CATEGORIES").each_with_index do |item, index|
#stuff for this type
end
end
我有三个常量:
MUTUAL_CATEGORIES
PROVIDER_CATEGORIES
RECEIVER_CATEGORIES
以及引用类别的方法
def do_some_stuff_with_mutual
MUTUAL_CATEGORIES ...
end
我想抽象这个方法,这样我就可以做类似的事情:
do_some_stuff_with(MUTUAL)
def do_some_stuff_with(type)
(type + "_CATEGORIES") ...
end
如何将字符串转换为引用常量?
Object.const_get(type + "_CATEGORIES")...
将 Object
替换为定义常量的 class
这可能不是个好主意,但您也可以使用 eval:
do_some_stuff_with(MUTUAL)
def do_some_stuff_with(type)
eval(type + "_CATEGORIES").each_with_index do |item, index|
#stuff for this type
end
end