Cómo probar si existen parámetros en los rieles
Estoy usando una declaración IF en Ruby on Rails para intentar comprobar si los parámetros de solicitud están configurados. Independientemente de si ambos parámetros están configurados o no, la primera parte del siguiente bloque if se activa. ¿Cómo puedo hacer que esta parte SÓLO se active si se configuran tanto params[:one] como params[:two]?
if (defined? params[:one]) && (defined? params[:two])
... do something ...
elsif (defined? params[:one])
... do something ...
end
Aceptado
Quieres has_key?
:
if(params.has_key?(:one) && params.has_key?(:two))
Simplemente verificar if(params[:one])
será engañado por un valor "allí pero nulo" y "allí pero falso" y estará preguntando sobre la existencia. Quizás necesites diferenciar:
- No allí en absoluto.
- Ahí pero
nil
. - Ahí pero
false
. - Sólo hay una cuerda vacía.
también. Es difícil decirlo sin más detalles de su situación precisa.
soy un fan de
params[:one].present?
Solo porque mantiene el params[sym]
formulario para que sea más fácil de leer.