Code details :

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

class RelatedLink < RelatedItem


class RelatedFeed < RelatedItem


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

## 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..

@clip = Clip.find(10)

when creating records in RelatedLink
@related_item =>, :relater_type=>'#{}')

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
@related_item =>, :relater_type=>'#{}')

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"