Sha256: 302d6304e45fd9af1a44e3f279ca1dc918492e1dfcd1967e3c07e25af6160385

Contents?: true

Size: 965 Bytes

Versions: 21

Compression:

Stored size: 965 Bytes

Contents

# 電話番号のバリデーション
# ActiveModel::EachValidatorを継承してRailsに統合する
class TelValidator < ActiveModel::EachValidator

  def initialize(options = {})
    super(options)
  end

  # レコード保存時に呼び出されるバリデーションメソッド
  # record ・・・ 保存対象のレコード
  # attribute ・・・ チェック対象の属性(DBのカラム)
  # value ・・・ 入力された値
  def validate_each(record, attribute, value)
    return if value.nil? or value.empty?
    
    unless validate_tel(record, value)
      record.errors.add(attribute, I18n.t('errors.messages.invalid'))
    end
  end
  
  private

  # 電話番号として妥当かどうかのチェック
  def validate_tel(record, value)
    # 全角・半角とわず数字とハイフンの構成であれば良しとしている
    value.match(/^[0-9|0-9]+[-|-]?[0-9|0-9]+[-|-]?[0-9|0-9]+$/)
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
bizside-3.0.7 validations/tel_validator.rb
bizside-3.0.6 validations/tel_validator.rb
bizside-3.0.5 validations/tel_validator.rb
bizside-3.0.4 validations/tel_validator.rb
bizside-2.3.9 validations/tel_validator.rb
bizside-3.0.3 validations/tel_validator.rb
bizside-2.3.8 validations/tel_validator.rb
bizside-3.0.2 validations/tel_validator.rb
bizside-3.0.1 validations/tel_validator.rb
bizside-3.0.0 validations/tel_validator.rb
bizside-2.3.7 validations/tel_validator.rb
bizside-2.3.6 validations/tel_validator.rb
bizside-2.3.5 validations/tel_validator.rb
bizside-2.3.4 validations/tel_validator.rb
bizside-2.3.3 validations/tel_validator.rb
bizside-2.3.2 validations/tel_validator.rb
bizside-2.3.1 validations/tel_validator.rb
bizside-2.3.0 validations/tel_validator.rb
bizside-2.2.3 validations/tel_validator.rb
bizside-2.2.2 validations/tel_validator.rb