有点奇怪的问题,但我想做的事情如下:
a = 6
b = 12
cond = "((a > 5 and b > 10) or a > 50)" #user generated
if cond
#do something
end
如何解析字符串,替换变量并作为条件运行。
答案 0 :(得分:1)
一旦你有一个Ruby字符串cond
,你就可以eval(cond)
。但请注意,出于安全原因,人们会批评这一点。
顺便说一句,如果您实际对代码执行eval(cond)
,它将返回错误,因为示例中的字符串cond
不是有效的Ruby代码。
答案 1 :(得分:1)
试试这个。
if eval(cond)
# do something.
end