다음을 수행 할 수도 있습니다.
unless params.values_at(:one, :two, :three, :four).includes?(nil)
... excute code ..
end
하나 이상의 매개 변수를 확인하려는 경우 위의 솔루션을 사용하는 경향이 있습니다.
.values_at는 정의되지 않은 매개 변수 키 대신 nil을 반환하고 배열합니다. 즉 :
some_hash = {x:3, y:5}
some_hash.values_at(:x, :random, :y}
다음을 반환합니다 :
[3,nil,5]
.includes? (nil) 그런 다음 배열에 nil 값이 있는지 확인합니다. 배열에 nil이 포함되어 있으면 true를 리턴합니다.
경우에 따라 params에 포함되지 않은 문자열을 확인하고 false 값으로 문자열을 비울 수도 있습니다.
cannot 문 위에 다음 코드를 추가하여 해당 값을 처리 할 수 있습니다.
params.delete_if{|key,value| value.blank?}
모두 함께 다음과 같이 보입니다.
params.delete_if{|key,value| value.blank?}
unless params.values_at(:one, :two, :three, :four).includes?(nil)
... excute code ..
end
delete_if는 해시 / 매개 변수를 수정하므로주의해서 사용하십시오.
위의 솔루션은 설정하는 데 약간의 작업이 더 필요하지만 하나 또는 두 개의 매개 변수 이상을 확인하는 경우 가치가 있습니다.
params
이것이 Rails 컨트롤러 메소드 (HashWithIndifferentAccess를 리턴하는 경우)라면 Rails에 관한 것입니다.