次のようなルートが必要です:
get '/posts/new' => 'posts#new'
get '/:username/posts/:id' => 'posts#show'
get '/:username/posts' => 'posts#index'
次のようなヘルパーを介してアクセスできます。
new_post_path #=> new -
post_path(post) #=> show - :username implied from post
posts_path #=> index - :username implied from session
posts_path(user) #=> index - :username explicit
各ルートを手動で指定するのではなく、機知に富んだセマンティクスでこれを行いたいと思います。また、URLヘルパーをスマートにする方法もわかりません。
でも?