a menudo me encuentro escribiendo esto:Ruby on Rails: Eliminar varias claves hash
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
La estela de eliminaciones no se siente bien y tampoco lo hace:
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
¿Hay algo más simple y ¿limpiador?
Cuando escribí que el segundo enfoque no se sentía bien, me refería a que, dada la riqueza de la API de Hash, sospechaba que había algún método o idioma ya que hay para esto y un parche mono wouldn' ser necesario Quizás no, sin embargo. Muchas gracias a todos los que respondieron! –
Hash # excepto que era exactamente lo que estaba buscando. No recuerdo que es una extensión principal de Rails, así que me quedé desconcertado cuando no pude encontrarla en la API de Hash. –
Tenga en cuenta que estrictamente la respuesta es 'Hash # ¡excepto!' Pero 'Hash # except' es el camino a seguir (¡no se meta con' params'!). Como regla general, no te metas con ningún objeto en el lugar a menos que sea absolutamente necesario, los efectos secundarios pueden tener resultados inesperados. – tokland