我如何仅绕过具有复杂条件的三元表达式的括号



我的代码看起来像这样:

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

您可以这样写:

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

查看文档

最新更新