タグ

railsとvalidatorに関するkiyo_hikoのブックマーク (1)

  • rails 日付や時刻の正当性を validation する - Qiita

    やりたいこと 2014-9-31 などを弾きたい。 結論から ActiveModel::EachValidator を使った Custom Validator を追加します。 gem を使わない理由 gem を使わなくても良いくらいの規模。 rails のバージョンアップに伴う、gem バージョンアップの負債が増えるのがいやだった。 例えば rails v4.1.5 で validates_timeliness を使うと、以下のような deprecated なエラーが出るようになった。 class MyValidator < ActiveModel::Validator def initialize(options={}) super options[:class].send :attr_accessor, :custom_attribute end end . (called from

    rails 日付や時刻の正当性を validation する - Qiita
    kiyo_hiko
    kiyo_hiko 2016/04/07
    自分はYYYYMMDDぐらいで十分だったのでclass DateValidator < ActiveModel::EachValidator; def validate_each(rec, attr, val); unless (begin; DateTime.parse(val.to_s); resucue; false; end); rec.errors.add(attr, options[:message] || :invalid); end; end; end ぐらいで済んだ
  • 1