Rails プロジェクトで問題が発生しました。以前のプロジェクト (Rails ではありません) では、PostgreSQL で「inet」タイプを使用して、次のように IP アドレスとサブネットを格納しました。
192.168.1.0/30
192.168.1.1/30
192.168.1.2/30
192.168.1.3/30
これは、IP とサブネットを 1 つのフィールドに格納するのに適した方法でした。現在、Rails (4.0.1) と Ruby (2.0.0 p247) で inet 型を使用していますが、読んで試したところ、Rails はそれを IPAddr オブジェクトに変換します。しかし、この IPAddr オブジェクトは私の形式を破壊しています。上記の 4 つの例を次のように変換します。
192.168.1.0/30
Railsがそれを行うのを防ぐ方法はありますか、それとも文字列に置き換える方法はありますか? それとも別の宝石?
何かを保存しようとすると、データベースから既存の値を読み取ろうとしたときにも問題が発生します。
より細かくするために:
IPAddr.new("192.168.1.2/255.255.255.252")
データベース エントリを作成します。
192.168.1.0/24