Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么Ruby会抱怨这个问题,除非有一组参数?_Ruby On Rails_Ruby_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 为什么Ruby会抱怨这个问题,除非有一组参数?

Ruby on rails 为什么Ruby会抱怨这个问题,除非有一组参数?,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我的声明如下: unless (parameter.values.any? "" || parameter.values.any? 0 || parameter[:num_units].eql? 0 || parameter[:num_units].nil? || parameter[:num_units].empty?) 这就是我得到的错误: : syntax error, unexpected tINTEGER, expecting ')' ...? "" || parameter.val

我的声明如下:

unless (parameter.values.any? "" || parameter.values.any? 0 || parameter[:num_units].eql? 0 || parameter[:num_units].nil? || parameter[:num_units].empty?)
这就是我得到的错误:

: syntax error, unexpected tINTEGER, expecting ')' ...? "" || parameter.values.any? 0 || parameter[:num_units].eql... ... ^ 
编辑1


基本上,我试图做的是检查传入的任何参数的值是否为
nil
0
,在
的参数周围添加括号。任何?
函数:

(parameter.values.any?("") || parameter.values.any?(0) || parameter[:num_units].eql?(0) || parameter[:num_units].nil? || parameter[:num_units].empty?)
=> true

整行的括号可能也不必要。

正如前面的答案所提到的,括号。。。它们也使它更具可读性。尽管如此,对于一行来说,这是一个可怕的条件

如果要缩短,可以将其更改为:

除非(parameter.values&[“”,0]).any?|[0,nil,[])。包括?(参数[:num_单位]


[0,nil,[]
数组假定您正在检查的
参数[:num_units]
的空值是一个数组-如果它是一个哈希,那么显然要将比较数组切换为
[0,nil,{}]

完美。效果很好。谢谢!我建议你解释一下为什么需要括号;特别是为什么会出现引用的语法错误。解释器对所有链接的“或”感到困惑例如,在Ruby中,
a=var | | 0
是有效的语法,将
a
设置为a
var
,除非它是
nil
,在这种情况下,它将其设置为
0
。将该原则应用到示例中。它是否询问是否存在任何问题?on
“”| 0
(根据我的示例,它总是比较
,因为它从来都不是
nil
,或者它是在询问
如果“”是nil,那么参数值的结果。any?(0)将被使用
。它没有真正的意义,显然不是有意的,并且混淆了人们和Ruby。