You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断请求类型并验证对应条件执行语句的写法正确性?

写法评估与优化建议

你原有的逻辑是成立的,但有2个可优化的点,能大幅降低出错概率:

  • 直接用框架内置的请求方法判断谓词更稳妥:如果你用的是Rails/Rack系框架,request对象自带get?方法,直接返回布尔值,不需要手动比对字符串,完全避免大小写不匹配、拼写错误的问题。原写法中如果出现请求方法返回小写get的特殊场景,会导致判断失效,用内置方法就没有这个隐患。
  • 正则匹配的变量要做转义:你原有代码中timeout_path如果包含.、*这类正则特殊字符,会导致匹配逻辑不符合预期,建议用Regexp.escape对变量做转义处理。

优化后代码

def save_path
  if request.get?
    # 避免保存超时跳转路径,否则用户无法正常进入登录流程
    session[:desired_path] = request.url unless request.url =~ /#{Regexp.escape(timeout_path)}$/
  end
end

如果你的运行环境没有提供request.get?这类内置方法,也可以把原有的字符串判断调整为大小写不敏感的写法,进一步兼容异常场景:

def save_path
  if request.method.upcase == 'GET'
    session[:desired_path] = request.url unless request.url =~ /#{Regexp.escape(timeout_path)}$/
  end
end

内容的提问来源于stack exchange,提问作者Pouya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:18:02