rotas / controlador / visualizações de estrutura de trilhos para recursos aninhados

Eu tenho o aplicativo rails com a seguinte estrutura:

user has_many posts post has_many post_comments post_comment has_many comment_replies

Estou planejando usar as seguintes rotas para evitar aninhamentos profundos.

resources :posts do
  resources :post_comments, module: :posts
end

resources :comments do 
  resources :comment_replies, module: :post_comments #is this module a good choice?
end

Isso fornece a seguinte estrutura de controlador

post_comments      GET    /posts/:post_id/comments(.:format)  posts/comments#index
                   POST   /posts/:post_id/comments(.:format)                       posts/comments#create
new_post_comment   GET    /posts/:post_id/comments/new(.:format)                   posts/comments#new
 edit_post_comment GET    /posts/:post_id/comments/:id/edit(.:format)              posts/comments#edit
      post_comment GET    /posts/:post_id/comments/:id(.:format)                   posts/comments#show
                   PATCH  /posts/:post_id/comments/:id(.:format)                   posts/comments#update
                   PUT    /posts/:post_id/comments/:id(.:format)                   posts/comments#update
                   DELETE /posts/:post_id/comments/:id(.:format)                   posts/comments#destroy


comment_repiles     GET    /comments/:comment_id/repiles(.:format)                  comments/repiles#index
                    POST   /comments/:comment_id/repiles(.:format)                  comments/repiles#create
 new_comment_repile GET    /comments/:comment_id/repiles/new(.:format)              comments/repiles#new
edit_comment_repile GET    /comments/:comment_id/repiles/:id/edit(.:format)         comments/repiles#edit
     comment_repile GET    /comments/:comment_id/repiles/:id(.:format)              comments/repiles#show
                    PATCH  /comments/:comment_id/repiles/:id(.:format)              comments/repiles#update
                    PUT    /comments/:comment_id/repiles/:id(.:format)              comments/repiles#update
                    DELETE /comments/:comment_id/repiles/:id(.:format)              comments/repiles#destroy

Meu problema é estruturar as pastas.

Para controladores: significa que eu coloquei oposts_controller na pasta principal e nopost_comments_controller entra emposts pasta. Até agora está claro. Mas pelocomment_replies Eu deveria colocá-lo nocomment_replies pasta que é totalmente separada de ondepost_comments_controller pode ser encontrado.

Para visualizações: eu tenho umcreate.js.erb paraposts na pasta 'post'. eu tenho umcreate.js.erb parapost_comment noposts/post_comments pasta. De acordo com minhas rotas, devo colocar ocreate.js.erb paracomment_replies nopost_comments/comment_replies folder. Mas isso parece contra-intuitivo novamente, como no exemplo do controlador.

Qual é a convenção de trilhos / solução comum nesse caso? Btw. Não quero mostrar comentários ou respostas separadamente da postagem deles.

ATUALIZAR

posts_controller

def index
  ....
  @post_comments = @post.post_comments #showing all comments
  @post_comment = PostComment.new #new comment via js
  respond_to do |format|
    format.js
  end
end

controlador post_comments

def create
  @post = Post.find(params[:id])
  @post_comment = @post.post_comments.build(post_comment_params)
  @post_comment.save!
end