Sha256: fa707ea2719ffb7201f87caf6f01854b9645911af0c0d162041fb62e26f8d5c0

Contents?: true

Size: 562 Bytes

Versions: 21

Compression:

Stored size: 562 Bytes

Contents

module ActsAsAssets::UniqueAsset

    def self.included(klass)
      klass.send(:include, InstanceMethods)
      klass.send(:validate,:acts_as_assets_check_uniqness, :on => :create)
    end

    module InstanceMethods
      def acts_as_assets_check_uniqness
        obj = self.class.send("find_by_#{self.class.foreign_key_name}".to_sym, self.send(self.class.foreign_key_name.to_sym))
        if obj
          errors.add(self.type, I18n.translate('acts_as_assets.unique_asset_error'))
        end
      end

      def multiple?
        false
      end
    end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
acts_as_assets-0.4.1 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.4.0.3 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.4.0.2 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.4.0.1 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.4.0 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.8 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.7 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.6 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.5 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.4 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.3 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.2 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.1 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.3.0 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.2.6 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.2.5 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.2.4 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.2.3 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.2.2 lib/acts_as_assets/unique_asset.rb
acts_as_assets-0.2.1 lib/acts_as_assets/unique_asset.rb