不确定标题是否完整描述了我要问的问题,抱歉。
我的一位开发伙伴创建了这样的类:
class Widget
attr_accessor :model_type
...
end
和:
class ModelType
MODEL1 = "model1"
MODEL2 = "model2"
MODEL3 = "model3"
end
现在他要我将检索到的字符串 "MODEL1"
转换为常量。因此,当他在其他地方引用该模型时,他可以使用 ModelType::MODEL1
(编辑:传入的字符串将恰好是常量的名称)。显然,我必须从我得到的字符串进行转换,如下所示:
case model_type
when 'MODEL1'
@model_type = ModelType::MODEL1
...
end
我觉得这很笨拙,所以我想知道是否有更好的 DRYer 方法来提供这种功能。
最佳答案
>> ModelType.const_get("MODEL1")
=> "model1"
关于ruby - 在 Ruby 中,是否有更好的方法根据传入的同名字符串选择常量(或完全避免常量)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2650372/