나는 종종 이것을 쓰는 것을 느낀다.
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
삭제의 흔적은 옳지 않다고 느끼지 않습니다.
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
더 간단하고 깨끗한 것이 있습니까?
두 번째 접근법이 옳지 않다고 썼을 때, 나는 Hash API가 풍부하기 때문에 이미 거기에 대한 방법이나 관용구가 있다고 생각했고 원숭이 패치가 필요하지 않을 것이라고 생각했습니다. 그래도 아닐 수도 있습니다. 답변 해 주신 모든 분들께 감사드립니다!
—
Mark Westling
해시 # 제외는 내가 찾던 것입니다. 나는 그것이 Rails 코어 확장이라는 것을 기억하지 못했기 때문에 Hash API에서 찾을 수 없을 때 당황했습니다.
—
Mark Westling
엄밀히 대답은
—
tokland
Hash#except!
있지만 Hash#except
갈 길입니다 (망설이지 마십시오 params
!). 일반적으로 절대적으로 필요한 경우가 아니면 제자리에있는 물체를 엉망으로 만들지 마십시오. 부작용으로 인해 예기치 않은 결과가 발생할 수 있습니다.