如何在Ruby中减少long if条件?

use*_*097 1 ruby ruby-on-rails

在Ruby中写条件的最佳方法是什么?

if (    $response_code == "400" ||
        $response_code == "401" ||
        $response_code == "402" ||
        $response_code == "403" ||
        $response_code == "404" ||
        $response_code == "411" ||
        $response_code == "500" ||
        $response_code == "501" ||
        $response_code == "502" ||
        $response_code == "0")
    {
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

Ruby似乎有简洁的做事方式,所以想知道我是否可以避免写这样的长篇大论.

KAR*_*ván 7

可能的方法:

ACCEPTED_CODES = [ "400", "401", "402", "403", "404", "411", "500", "501", "502", "0" ]

def test(response_code)
  !ACCEPTED_CODES.include?(response_code)
end
Run Code Online (Sandbox Code Playgroud)