以下是我的routes.rb文件:
Rails.application.routes.draw do
#Routes
get 'users/s/:username', to: "users#search"
resources :users, only: [:index, :show, :create, :update, :destroy]
resources :forum_threads, only: [:index, :show, :create, :update, :destroy] do
resources :comments, only: [:index, :show, :create, :update, :destroy]
end
end
这是我的控制器中与注解相关的部分:
class CommentsController < ApplicationController
#GET /Comments [Get all comments for a specific thread]
def index
@Comments = Comment.where("ForumThread_id = ?", params[:forum_thread_id])
render json: @Comments
end
#GET /Comments/:id [Get a specific comment by its ID]
def show
@Comment = Comment.find(params[:id])
render json: @comment
end
我尝试通过Postman发送请求。index方法似乎可以用于注解(as seen here),但show方法似乎不起作用(like here)。为什么show方法不起作用?
1条答案
按热度按时间oxcyiej71#
您正在使用嵌套路径
因此,在本例中,您应该查找
comment_id
而不是id
您可以使用检查参数
此外,在父范围内搜索注解也是一种最佳实践
在您的情况下
forum_threads
确保添加了额外的条件,以使用
params[:id]
获取属于forum_thread
的注解例如:
如果你有适当的联想,你可以重写为