Ruby on rails Rails-为什么在这里工作或不工作?
我想通过参数循环并排除某些参数,因此我使用了以下循环:Ruby on rails Rails-为什么在这里工作或不工作?,ruby-on-rails,Ruby On Rails,我想通过参数循环并排除某些参数,因此我使用了以下循环: params.each do |key, value| html += "#{key}: #{value}</br>" if key !='authenticity_token' && key != 'utf8' end params.each do |键、值| html+=“#{key}:#{value}“如果key!=”真实性\u令牌“&&key!=”utf8' 结束 现在,这适用于&&但是当我尝试用
params.each do |key, value|
html += "#{key}: #{value}</br>" if key !='authenticity_token' && key != 'utf8'
end
params.each do |键、值|
html+=“#{key}:#{value}“如果key!=”真实性\u令牌“&&key!=”utf8'
结束
现在,这适用于&&但是当我尝试用| |替换它时:
html += "#{key}: #{value}</br>" if key !='authenticity_token' || key != 'utf8'
html+=“#{key}:#{value}”如果key!='真实性|令牌“|密钥!=”utf8'
它不起作用。它使用起来更有意义,或者因为它循环遍历每个键、值对,如果该键是一个_令牌或键,那么它应该跳过它。不可能两者都在同一条线上。我想我不太明白Rails是如何处理循环的,以及&&condition的工作原理,有人能给我解释一下吗?谢谢。如果您需要使用或,您应该尝试类似的方法
if !(key =='authenticity_token' || key == 'utf8')
这是一种否定逻辑
key !='authenticity_token' && key != 'utf8'
当键既不是authenticity\u令牌
也不是utf8
鉴于
key !='authenticity_token' || key != 'utf8'
这将为每个键返回true
,包括authenticity\u令牌
,utf8
因为
对于utf8
keykey!='真实性\u标记“
将为true
用于authenticity\u令牌的abd
keykey!='utf8'
将为true
如果要使用| |条件,请使用以下命令
!(key =='authenticity_token' || key == 'utf8')
或者,如果您愿意,
除非key=='authenticity token'| | key=='utf8'
使用除非似乎是一种更为简单的方法。谢谢