Sha256: e2205291fea5ca797325bcb1c2b7f264f1f3a213a3a393e4675544015ca4f5f0

Contents?: true

Size: 946 Bytes

Versions: 2

Compression:

Stored size: 946 Bytes

Contents

module AbAdmin
  module Concerns
    module Validations
      class UniqTranslationValidator < ActiveModel::EachValidator
        def validate_each(record, attribute, value)
          ::I18n.available_locales.each do |l|
            next if record.read_attribute(attribute, :locale => l).blank?
            records_scope = record.class.const_get(:Translation).where("#{record.class.model_name.foreign_key} != #{record.id || 0}")
            same = records_scope.where(:name => record.read_attribute(attribute, :locale => l), :locale => l.to_s).exists?
            record.errors.add("#{attribute}_#{l}", :taken) if same
          end
        end
      end

      class AssetValidator < ActiveModel::EachValidator
        def validate_each(record, attribute, value)
          if Array(record.fileupload_asset(attribute)).all?{|a| a.new_record? }
            record.errors.add(attribute, :blank)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ab_admin-0.2.3 lib/ab_admin/concerns/validations.rb
ab_admin-0.2.2 lib/ab_admin/concerns/validations.rb