【问题标题】:How do I bypass Only use parentheses for ternary expressions with complex conditions?如何绕过仅对具有复杂条件的三元表达式使用括​​号?
【发布时间】:2018-02-13 17:51:10
【问题描述】:

我的代码如下所示:

def redirector
  # :nocov:
  unless ENV["URL"]
    return "https://google.com"
  end
  # :nocov:

  redirect_url = (request.original_fullpath.include? "404") ? root_path : request.original_url
  param_object = { redirect: redirect_url }

  ENV["URL"] + "?" + param_object.to_param
end

有没有更好的写法?

redirect_url = (request.original_fullpath.include? "404") ? root_path : request.original_url

【问题讨论】:

    标签: ruby-on-rails rubocop


    【解决方案1】:

    你可以这样写:

    redirect_url = request.original_fullpath.include?("404") ? root_path : request.original_url
    

    甚至:

    redirect_url = if request.original_fullpath.include? "404"
      root_path
    else
      request.original_url
    end
    

    您会收到有关括号的警告,因为您的条件很简单。复杂条件如下所示:

    foo = (bar && baz) ? a : b
    

    Check out the doc.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      相关资源
      最近更新 更多