unless strong rails present not nil multiple blank ruby-on-rails params null

ruby on rails - strong - ¿Cómo verificar si params[: some][: field] es nil?



ruby unless (5)

Probé el código, eso le gustó a mucha gente: cómo probar si los parámetros existen en los rieles , pero no funcionó ():

if ( params.has_key?([:start_date]) && params.has_key?([:end_date]) )

Creo que eso se debe a parámetros complicados y si escribo esto:

if ( params.has_key?([:report][:start_date]) && params.has_key?([:report][:end_date]) )

me da error

can''t convert Symbol into Integer

esto no funciona también:

if ( params[:report][:start_date] && params[:report][:end_date] )

me da error:

undefined method `[]'' for nil:NilClass

Siempre entra en la declaración else.

Aquí están mis params:

report: start_date: 01/08/2012 end_date: 10/08/2012

Alguien me puede ayudar ?


Esto funciona para:

if params[:report].has_key?(:start_date)

Y tal vez agregue esto para que también compruebe si no está vacío:

&& !params[:report][:start_date].empty?



Parece que necesitas lo siguiente

params[:report].present?

o

params[:report].nil?

o

params[:report].empty?

dependiendo de lo que está tratando de verificar


Respuesta cruzada desde aquí :

Ruby 2.3.0 hace que esto sea muy fácil de hacer con #dig .

h = { foo: {bar: {baz: 1}}} h.dig(:foo, :bar, :baz) #=> 1 h.dig(:foo, :zot, :baz) #=> nil


if params[:report] && params[:report][:start_date] && params[:report][:end_date]