私のpostgreデータベーステーブルはでセットアップされました
t.integer :time_employed
私はそのような検証をしました
validates :time_employed, numericality: true, allow_blank: true
そして私も試しました
validates_numericality_of :time_employed, allow_blank: true
しかし、どちらも私が探していた結果をもたらしませんでした。コンソールでいくつかのテストを行ったところ、フィールドは常に0
またはに設定されているようでしnil
た。文字列を入力すると、に設定されていました0
。
データベースフィールドをに変更しました
t.string :time_employed
そして今、すべてが正常に機能します。それは大きな問題ではありませんが、スキーマによってデータが正しく記述されていることを望んでいました。
私はまだデータベースについてあまり知らないので、これでループに陥りました。ここで何が起こっているのか誰でも説明できますか?
編集:
問題は、空白のエントリを許可することでしたが、数値以外を入力してもエラーにはなりませんでした。DBに保存されないだけで、何でも良いと検証されます。t.string
検証に変更し、変更を加えなかった後、正常に機能しました。
私も試しallow_nil: true
ましたが同じ効果でした。