Cómo probar si existen parámetros en los rieles

Resuelto Darren asked hace 13 años • 15 respuestas

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
Darren avatar Apr 12 '11 08:04 Darren
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.

mu is too short avatar Apr 12 '2011 01:04 mu is too short

soy un fan de

params[:one].present?

Solo porque mantiene el params[sym]formulario para que sea más fácil de leer.

netricate avatar Nov 08 '2013 15:11 netricate