rspec: mocking a reference to a polymorphic model?

The basic question: how do you mock (or stub) a reference to a
polymorphic class in RSpec? Trying the obvious thing leads to an error
of the form:

   undefined method `base_class' for Post:Class

=== The details:

# file: app/models/relation.rb
class Relation < ActiveRecord::Base
  belongs_to :entity, :polymorphic => true

# file: db/xxx_create_relations.rb
class CreateRelations < ActiveRecord::Migration
  def change
    create_table :relations do |t|
      t.references :entity, :polymorphic => true, :null => false

# file: spec/models/relation_spec.rb
describe Relation do
  it 'should create instance without error' do
    post = mock_model("Post")
    lambda { Relation.create!(:entity => @post)}.should_not raise_error

=== Running the test:

  1) Relation should create instance without error
     Failure/Error: lambda { Relation.create!(:entity => post)
}.should_not raise_error
       expected no Exception, got #<NoMethodError: undefined method
`base_class' for Post:Class>
     # ./spec/models/relation_spec.rb:39:in `block (2 levels) in <top

My hunch is that ActiveRecord is calling base_class on the mocked model
(Post) to determine what to stick in the 'entity_type' column in the
relations table. I tried explicitly setting it, as in:

    post = mock_model("Post", :base_class => "Post")

but the error was the same.

For all the reasons that DC espouses, I'd love to mock (or stub)
references to the polymorphic models, but I don't see how to do that.
Any ideas?

I don't espouse stubbing or mocking associations, as it requires
knowledge of Rails internals (as in your example). I do espouse
stubbing domain-specific APIs on models in controller specs, because
that provides fine-grained control of state and decoupling from the
database, but that is an entirely different matter/context.