You can use a default scope:
class Post < ActiveRecord::Base
scope :by_position, order("position ASC")
default_scope by_position
#...
end
Then @user.posts
should return a list ordered by the position (ASC).
Also, the following should be working for you: (plural on post
)
has_many :posts, :dependent => :destroy, :order => "posts.position ASC"