samplerrrr
Ruby
code posted
created at 10 Dec 02:31
Edit
|
Back
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Examples: # validates_file_format_of :field, :in => ["gif", "png", "jpg"] # validates_file_format_of :field, :in => ["image/jpeg"] def validates_file_format_of(*attrs) options = attrs.pop if attrs.last.is_a?Hash raise ArgumentError, I18n.t(:include_option) if !options || !options[:in] options[:in] = [options[:in]] if options[:in].is_a?String raise ArgumentError, I18n.t(:invalid_value_for) unless options[:in].is_a?Array validates_each(attrs, options) do |record, attr, value| unless value.blank? mime_extensions = record.send("#{attr}_options")[:mime_extensions] extensions = options[:in].map{|o| mime_extensions[o] || o } record.errors.add attr, I18n.t(:not_a_valid_format) unless extensions.include?(value.scan(EXT_REGEXP).flatten.first) end end end |
931 Bytes in 3 ms with coderay