Ruby の「ハッシュ」メソッドに問題があります: http://apidock.com/ruby/v1_8_7_330/Hash/hash
これを使用して、同じコンテンツを持つ 2 つの異なるオブジェクトを比較し、データベース オブジェクトと同じ属性を持つ新しい要素の間の衝突を見つけます。
どうやら長い間 (1 年以上) 動作していたようですが、開発用コンピューターで突然動作しなくなりました。
Railsコンソールでこれを試すと:
a = {:a => 'a', :b=>'b'}
b = {:a => 'a', :b=>'b'}
a.hash
b.hash
-3820017043059270405
同じコンソールでa.hash と b.hash ( ) の両方で同じ値を取得します。問題は、別のコンソールに変更すると、最初のコンソールとは異なる値が返されることです ( -1865824882785682267
)。
これまでと同じハッシュを返すべきではありませんか?
前もって感謝します。
編集:ree 1.8.7バージョンのため、本番環境でうまく機能しました。