ruby-on-rails – 将“1.hour”转换为1.hour
发布时间:2020-12-17 03:52:22 所属栏目:百科 来源:网络整理
导读:是否有可能将“1.hour”字符串转换为1.hour,将“2.hours”转换为2.hours in ruby???实际上我从表格的下拉列表中获取此值.我想通过类似的东西将它添加到Time.now time = Time.now + get_method(params[:hours_or_days]) params [:days_or_hours]可能是“2.h
是否有可能将“1.hour”字符串转换为1.hour,将“2.hours”转换为2.hours in
ruby???实际上我从表格的下拉列表中获取此值.我想通过类似的东西将它添加到Time.now
time = Time.now + get_method(params[:hours_or_days]) params [:days_or_hours]可能是“2.hours”或“1.hour”或“1.day”.我想获得这些字符串的方法转换.可能吗? (通过发送等方法) 解决方法
您不应该使用eval执行此操作,因为使用您的网站的人可能会发送任何Ruby代码字符串供您执行,这对您的网站来说是一个糟糕的安全漏洞.您可以使用Regexp或白名单来验证字符串,但这样会很麻烦.
我认为你应该在渲染表单时评估1.hour和2.hours等等.像这样的东西: <%= select_tag(:days_or_hours,options_for_select({ "1 hour" => 1.hour,"2 hours" => 2.hours })) %> 这会生成如下HTML: <select name="days_or_hours"> <option value="3600">1 hour</option> <option value="7200">2 hours</option> </select> 现在,提交表单时将传递秒数,您不必担心用户是选择了几小时还是几天.你的代码变成了: time = Time.now + params[:days_or_hours].to_i (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |