Code details :

#model file
class RelatedItem < ActiveRecord::Base
acts_as_list :scope => :relater
belongs_to :relater, :polymorphic=>true
end

class RelatedLink < RelatedItem

end

class RelatedFeed < RelatedItem

end

class Clip < ActiveRecord::Base
has_many :related_items, :as => :relater
end

## Table Structure of RelatedItem
id :integer(11)
name :string(255)
relater_id :integer(10)
relater_type :string(255)
type :string(255)
position :integer(10)
source :string(255)

#########




In the above case while creating new record for RelatedLink or RelatedFeed it generating position number with scope of RelatedLink or RelatedFeed..
like

@clip = Clip.find(10)

when creating records in RelatedLink
(i,e
@related_item = RelatedLink.new(:relater_id=>@clip.id, :relater_type=>'#{@clip.class.name}')
}

output showing like
rec 1 -> position=1 ,relater_id=10, relater_type="Clip", type="RelatedLink"
rec 2 -> position=2 ,relater_id=10, relater_type="Clip", type="RelatedLink"
rec 3 -> position=3 ,relater_id=10, relater_type="Clip", type="RelatedLink"

AND when creating records in RelatedFeed
(i,e
@related_item = RelatedFeed.new(:relater_id=>@clip.id, :relater_type=>'#{@clip.class.name}')
)

with RelatedFeed output:
records 1 -> position=1 ,relater_id=10, relater_type="Clip", type="RelatedFeed"
records 2 -> position=2 ,relater_id=10, relater_type="Clip", type="RelatedFeed"
records 3 -> position=3 ,relater_id=10, relater_type="Clip", type="RelatedFeed"