Se você precisa de algo assim em seu aplicativo Rails:
resources :users do
resources :posts
end
resources:posts
Você pode manter seu PostsController DRY com este filtro simples:
before_filter :load_user
def load_user
@user = User.find(params[:user_id]) if params[:user_id]
@posts = @user ? @user.posts : Post.scoped
end
Então você pode reescrever suas ações CRUD como:
def new
@post = @posts.build
end
def create
@post = @posts.build(params[:post])
end
def show
@post = @posts.find(params[:id])
end
def edit
@post = @posts.find(params[:id])
end
def update
@post = @posts.find(params[:id])
end
def destroy
@post = @posts.find(params[:id])
end
Fonte: Stackoverflow