ここで私は完全に直接的な質問であることを期待していますが、ガイドやその他のところで決定的な答えを見つけることはできません。Rails 3検証:存在=>偽
私はActiveRecordに2つの属性を持っています。私はちょうど1つが存在し、もう1つはゼロまたは空の文字列にしたい。
これに相当するのはどうすればいいですか?存在=>偽ですか?私は値がゼロであることを確認したい。
validates :first_attribute, :presence => true, :if => "second_attribute.blank?"
validates :second_attribute, :presence => true, :if => "first_attribute.blank?"
# The two lines below fail because 'false' is an invalid option
validates :first_attribute, :presence => false, :if => "!second_attribute.blank?"
validates :second_attribute, :presence => false, :if => "!first_attribute.blank?"
それとも、これを行うにはよりエレガントな方法があります...
私はRailsのを実行している3.0.9
私はあなたが必要とするかわからない:プレゼンスを=>偽のすべてのコードの最後の2行で。 – creativetechnologist
@creativetechnologist何らかのテストが必要です。存在確認を取り除くと、C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3になります。 0.9/lib/active_model/validations/validates.rb:79: 'validates ':少なくとも1つのバリデーション(ArgumentError)を提供する必要があります。 – LikeMaBell
Rails 4に注目する価値があります。これは' validates_absence_of'です。 – mpowered