How can I override a class method that a gem is adding to ActiveRecord::Base (in my decorator)
===

The interactions are a bit complicated here, so bear with me. 
I'm working with Spree. Spree uses delegate_belongs_to in some of its models, including 'Spree::Variant'. 'delegate_belongs_to :product, :available_on (...)' is being called in the original class body. 

I would like for variants to be able to have their own available_on date. delegate_belongs_to is injecting itself like so:

    module DelegateBelongsTo
      extend ActiveSupport::Concern
      module ClassMethods
        #...
        def delegate_belongs_to(association, *attrs)     
          #...
        end
      end
    end

    ActiveRecord::Base.send :include, DelegateBelongsTo  

I would prefer not to override the entire variant class to remove this one argument. This is  one of my most recent attempts:

    Spree::Variant.class_eval do
      class << self
        alias_method :original_dbt, :delegate_belongs_to

        def delegate_belongs_to(association, *attrs)
          attrs.delete [:available_on]
          original_dbt(association, attrs)
        end
      end

      attr_accessible :available_on
      #...
    end

I've tried a number of variations on this. I'm not sure if it's because it's in a class_eval, if there's some issue with the order of execution, or what, but I can't seem to override this method. What am I failing to understand here?

Thanks.