1

before_validationモデルフィルターに検証を追加する必要があります。どうやってやるの?

前もって感謝します

-編集私は自分自身を正しく表現していませんでした。次のようなコールバックに検証を追加する必要があります。

validate :check_length

def check_length
 if my_conditional
     validates_length_of   :name, :minimum => 5
 else
     validates_length_of   :name, :minimum => 7
end
4

2 に答える 2

8

メソッドを作成し、コールバックから呼び出す必要があります

    before_validation :run_this_check


    def run_this_check
    ##run your validation
       errors.add(:key, "This is your error message")
    end

または、検証が属性(またはフィールド)を処理していない場合

   def run_this_check
     errors.add_to_base('error message')
   end
于 2012-08-29T15:12:40.907 に答える
0

使ってみてください

class X < ActiveRecord

  validates_length_of   :name, :minimum => 5 if my_condition
  validates_length_of   :name, :minimum => 7 unless my_condition

end

状態はどうですか?

于 2012-08-30T02:56:46.010 に答える