我尝试在Ruby on Rails项目中执行一些Date
计算,其中我有一个period
变量,必须执行类似Date.current - period
的操作
因为period
变量包含一个类似"2.months"
的字符串,所以当我执行上述计算时,我得到一个expected numeric
错误。
有没有不涉及使用eval
方法或任何其他不被认为“安全”的方法的变通方法?
我尝试在Ruby on Rails项目中执行一些Date
计算,其中我有一个period
变量,必须执行类似Date.current - period
的操作
因为period
变量包含一个类似"2.months"
的字符串,所以当我执行上述计算时,我得到一个expected numeric
错误。
有没有不涉及使用eval
方法或任何其他不被认为“安全”的方法的变通方法?
2条答案
按热度按时间dba5bblo1#
您必须自己解析字符串,并确保它是安全的,例如:
mspsb9vt2#
可以使用
send
:它应该用秒[s]、分钟[s]、...、天[s]、周[s]等来工作。
参见https://api.rubyonrails.org/classes/Numeric.html和https://api.rubyonrails.org/classes/ActiveSupport/Duration.html