Rails 3.2.8でモデルを設定しようとしていますが、特定の値が存在する必要がありますが、空の文字列にすることができます。誰かがこれを行う方法を知っていますか?
私が探している動作は次のようになります。
@foo.value = "this is a real value"
@foo.valid? # => true
@foo.value = nil
@foo.valid? # => false
@foo.value = ""
@foo.valid? # => true
使用する場合
validates :foo, :presence => true
次に、1と2に必要なものを取得しますが、3は取得しません。また、プレゼンスを検証するときに:allow_blank => true
無視されます。
私も試しました
validates :foo, :length => { :minimum => 0 }, :allow_nil => false
同じ動作:1と2に必要なものを取得しますが、3は取得しません。
列をNOT NULL
データベースのようにマークすることもできると思いますが、例外をキャッチする必要があります。検証段階でこれをキャッチしたいと思います。
何か案は?