方法
執行個體公開方法
after_validation(*args, &block) 連結
定義一個驗證後會立即呼叫的回呼。
class Person
include ActiveModel::Validations
include ActiveModel::Validations::Callbacks
attr_accessor :name, :status
validates_presence_of :name
after_validation :set_status
private
def set_status
self.status = errors.empty?
end
end
person = Person.new
person.name = ''
person.valid? # => false
person.status # => false
person.name = 'bob'
person.valid? # => true
person.status # => true
來源:顯示 | 在 GitHub 上
# File activemodel/lib/active_model/validations/callbacks.rb, line 88 def after_validation(*args, &block) options = args.extract_options! options = options.dup options[:prepend] = true set_options_for_callback(options) set_callback(:validation, :after, *args, options, &block) end
before_validation(*args, &block) 連結
定義驗證前會立即呼叫的回呼。
class Person
include ActiveModel::Validations
include ActiveModel::Validations::Callbacks
attr_accessor :name
validates_length_of :name, maximum: 6
before_validation :remove_whitespaces
private
def remove_whitespaces
name.strip!
end
end
person = Person.new
person.name = ' bob '
person.valid? # => true
person.name # => "bob"
來源:顯示 | 在 GitHub 上
# File activemodel/lib/active_model/validations/callbacks.rb, line 55 def before_validation(*args, &block) options = args.extract_options! set_options_for_callback(options) set_callback(:validation, :before, *args, options, &block) end