2
Ruby on Rails에서 작업 중이며 Ruby의 허가 함수를 사용하여 해시의 모든 값을 허용하려고합니다. 그것은 오히려 간단 해 보이지만, 나는 이것을 작동시키지 못합니다. 나는 허가에 대한 참조를 이미 검토했고,이 SO 질문에 대한 대답은 how to permit an array with strong parameters이다. filtered_params에 대해 원하는 값을 구하는 방법에 대한 조언을해시에서 모든 값을 허용하는 방법
{"OriginCity"=>"Denver", "PickupDates"=>{"0":"2016-09-30"}}
동안
여기 내 코드의
PERMITTED_PARAMS = [
:OriginCity,
:OriginState,
{ :PickupDates => {}}
].freeze
params = {"OriginCity"=>"Denver", "OriginState"=>"CO", "PickupDates"=>{"0"=>"2016-09-30"}}
filtered_params = params.permit(PERMITTED_PARAMS)
는 그리고, filtered_params에 대한 결과 값은
{"OriginCity"=>"Denver", "PickupDates"=>{}}
입니다 PERMITTED_PARAMS을 (를) 변경하여 원하는 값을 찾으셨습니까?
': PickupDates => PARAMS [: PickupDates] .try (: 키)'더 좋을 수도, 당신은 쉽게 할 수있을 것 ': PickupDates => params [: PickupDates] .try (: keys) .to_a.select {| k | Integer (k) rescue nil}'예를 들어. 강한 매개 변수에 키를 일치시키는 정규 표현식을 제공하는 방법을 찾을 수 없으므로 직접 손으로 찔러야합니다. –
이 작품 - 많은 감사합니다 (그리고 동의 - 해시하지 배열)! – Craig
좋아요! 모든 매개 변수를 허용하는 예는 약간 관대하지만 강력한 매개 변수를 사용하면 더 많은 것을 할 수 없습니다. 관심이 있다면 원하는 키만 필터링 할 수 있지만 코드가 복잡해집니다 ... –