未定义的方法“头?”使用 rabl

undefined method `head?' using rabl

一段时间以来,我一直在努力解决这个奇怪的错误。这是我的基本控制器:

get :index, provides: :json do
  @requests = Request.order(:created_at)
  render 'requests/index'
end

get :show, with: :id, provides: :json do
  @request = Request.find_by(id: params[:id])
  render 'requests/show'
end

这是我的 rabl json 文件在每种情况下的样子:

index.json.rabl:

collection @requests
  attributes :created_at, :updated_at, :user_id, :request_type

show.json.rabl:

object @request
 attributes :id

第一条路线,即:index returns 请求对象数组很好,但第二条路线,即:show 抛出以下错误:

NoMethodError at /show/1
undefined method `head?' for #<Request:0x007f6814485840>

有人可以指出这个错误可能是什么吗?它为什么要找头?功能?

不要使用@request 实例变量。机架堆栈使用它来存储 HTTP 请求。