2016-09-27 4 views
0

내 검색 엔진이 매개 변수에서 일부 검색 필터를 검색하지만 "필터"매개 변수가없는 경우 다른 작업을 수행해야합니다.집합에 일부 매개 변수가 있는지 확인

나는 이전에

params.slice(*filter_params).any? 

을하고 있던하지만 지금은

중단 경고를 받고 오전 : 방법 중 하나를? ActionController::Parameters은 더 이상 해시를 상속하지 않으므로 Rails 5.1에서는 제거되고 제거됩니다. 이 사용되지 않는 동작을 사용하면 잠재적 인 보안 문제가 발생할 수 있습니다. 이 방법을 계속 사용하면 앱에 악용 될 수있는 보안 취약점이 발생할 수 있습니다. 내가 여기 .any? 전화를 대체하기 위해 무엇을 할 수 있는지 잘 모르겠어요 http://api.rubyonrails.org/v5.0.0.rc1/classes/ActionController/Parameters.html

대신, 사용되지되지 않은이 문서화 된 방법 중 하나를 사용하는 것이 좋습니다?

+0

안녕하세요, 문제가 해결 된 답변이 있으면 수락하시기 바랍니다. 추신 내가 [이 이전 질문에 대한 답변]에 대한 의견에서 제안한 것들 중 하나를 시도 했습니까 (http://stackoverflow.com/q/39698466/1772830)? 나는 단지'qualified_const_get'이 당신이 거기에 필요했던 것일 수도 있다고 생각했다. (파티에 다소 늦은 것 일지라도) –

답변

2

당신은 Object#present?로 대체 할 수 있습니다 :

params.slice(*filter_params).present? 
+0

늦게 받아 들여서 죄송합니다. 여기에 –

0

당신은 당신이 사용하고있는 해시 방법을 얻을 수 params.to_h를 호출 할 수 있습니다.

+0

이 해결책으로 보입니다. –

+0

그것은 여전히 ​​실행 가능한 솔루션입니다. OP의 시나리오는'.any? '를 사용하고 strong param의'@ permitted' 상태를 잃어 버림으로써 보안상의 위험을 안겨주고 있습니다. 그래서 해시로부터의 상속이 처음에는 제거되었습니다 : https://github.com/rails/ 레일/당기기/14384 –

0

! .blank? 또는! .empty?

관련 문제