2

パラメータをループして特定のパラメータを除外したいので、次のループを使用しました。

params.each do |key, value|
  html += "#{key}: #{value}</br>" if key !='authenticity_token' && key != 'utf8'
end

今、これは && で動作しますが、 || に置き換えようとすると :

html += "#{key}: #{value}</br>" if key !='authenticity_token' || key != 'utf8'

うまくいきませんでした。各キーと値のペアをループし、キーが a_token OR キーである場合はスキップする必要があるため、OR で動作する方が理にかなっています。同じ行に両方が存在することはできません。ここで Rails がループを処理する方法と && 条件が機能する理由がよくわからないと思います。誰か説明してもらえますか? ありがとう。

4

2 に答える 2

4
key !='authenticity_token' && key != 'utf8'

trueこれは、キーがどちらauthenticity_tokenでもない場合に返されますutf8

一方

key !='authenticity_token' || key != 'utf8'

これは、trueを含むすべてのキーに対して返されます。authenticity_tokenutf8

utf8キーkey !='authenticity_token'は_true

authenticity_tokenキーのabdkey !='utf8'true

|| を使用する場合 状態使用下記

!(key =='authenticity_token' || key == 'utf8')
于 2013-08-07T10:30:18.493 に答える