ฉันมักจะพบว่าตัวเองเขียนสิ่งนี้:
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#except!
แต่Hash#except
เป็นวิธีที่จะไป (อย่ายุ่งกับparams
!) ในฐานะที่เป็นกฎง่ายๆอย่ายุ่งกับวัตถุใด ๆ ในสถานที่นอกเสียจากว่าจำเป็นอย่างยิ่งผลข้างเคียงอาจมีผลที่ไม่คาดคิด