Tôi thường thấy mình viết điều này:
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
Dấu vết xóa không cảm thấy đúng và cũng không:
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
Có điều gì đơn giản và sạch sẽ hơn?
Hash#except!
nhưng Hash#except
là cách để đi (đừng lộn xộn params
!). Theo nguyên tắc thông thường, không gây rối với bất kỳ đối tượng nào tại chỗ trừ khi hoàn toàn bắt buộc, các tác dụng phụ có thể có kết quả không mong muốn.