Railsでintegerのカラムにシンボルを突っ込んじゃうと1になる

hoge_id = nil

と書くはずが、

hoge_id = :nil

とシンボルにしてしまっている箇所があり、これがinteger型のhoge_id属性としてDBに突っ込まれると、なんと、1になってしまうという。データ見たら全く関係のないid=1のレコードをJOINしていて驚きました。試してみたところ、シンボルはstring型だと文字列になりますが、integer型だと1で入るようですね。ハッシュでActiveRecordに渡すときにうっかりシンボルと値を逆にしてしまうような間違いをするとデータ不整合にすぐに気づかないかもしれませんね。

Rubyはシンボルを「文字列と一対一に対応する整数値」として記録します。シンボルどうしを比較するときは、文字列ではなく整数として比較されるので、文字列の比較よりも高速になります.

シンボルをどう説明するか - Rubyリファレンス日記

という説明もあるのだからと、コンソールから複数のシンボルを試してみましたがActiveRecordは全部1を返しました。なぜ1なのでしょう?