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"