実際には Integer の BatchLoader ライブラリから取得した遅延ロード プロパティである可能性がある引数値があります。 case-expression を使用すると、値の動作が少しおかしくなります。便宜上、Integer === (負け比較) 演算子を使用すると、結果は次のようになります。
[11] pry(ActiveJob::Arguments)> Integer === argument.to_i
=> true
[12] pry(ActiveJob::Arguments)> Integer === argument
=> false
[13] pry(ActiveJob::Arguments)> argument.is_a?(Integer)
=> true
[14] pry(ActiveJob::Arguments)> argument.class.name
=> "Integer"
2 番目の結果が false になるのはなぜですか? 引数がどこから派生したかを確認する方法はありますか?
@tadman が説明しているように、引数変数のメソッドがバッチローダー ライブラリによって上書きされ、比較が失敗します。 @tadmanのソリューションで確認できます。有難うございます。