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
key
key!='真实性\u标记“
将为
true

用于
authenticity\u令牌的abd
key
key!='utf8'
将为
true

如果要使用| |条件,请使用以下命令

!(key =='authenticity_token' || key == 'utf8')

或者,如果您愿意,
除非key=='authenticity token'| | key=='utf8'
使用除非似乎是一种更为简单的方法。谢谢