Ruby on rails 在Rails中使用has_one关系和OR进行范围限定

Ruby on rails 在Rails中使用has_one关系和OR进行范围限定,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我在设置一个作用域时遇到问题,该作用域将检查有一个

我在设置一个作用域时遇到问题,该作用域将检查
有一个
关系上的值。我有一个
文档
模型。每个文档
都有一个
Document::Response
,并且
Document::Response
有一个
状态
字段(我用
rails g model documents/Response
生成了
Document::Response
模型,这使事情比我预期的要复杂一些。例如,强参数方法将其引用为
:Document\u responses
。但不确定它是否相关。)

一旦我开始工作,我还需要检查其他东西:

scope :rejected, -> { joins(:response).where(status: 'rejected').or(status: 'owed' }
但我似乎无法正确理解这句话的语法

PG::UndefinedColumn: ERROR:  column documents.status does not exist
LINE 1: ...ts"."id" WHERE "documents"."mortgage_id" = $1 AND "documents...
                                                             ^
: SELECT COUNT(*) FROM "documents" INNER JOIN "document_responses" ON 
"document_responses"."document_id" = "documents"."id" WHERE 
"documents"."mortgage_id" = $1 AND "documents"."status" = $2
路线:

  resources :mortgages, shallow: true do
    resources :documents do
      collection do
        post :create_templates
      end
    end
    member do
      post :archive
    end
  end

 resources :responses, controller: 'document/responses' do
    member do
      post :accept
      post :reject
    end
  end

需要明确告诉AR使用
响应
表中的
状态
列,而不是
文档

scope :rejected, -> {
  joins(:response).where(responses: { status: 'rejected' })
}

scope :processed, -> {
  joins(:response).where(responses: { status: ['rejected', 'owed'] })
}

你能告诉我们你发现了什么问题吗?我有一条错误消息吗?如果有,请编辑你的问题并添加它…或者你看到/尝试过的其他任何东西。Rails版本?
scope :rejected, -> {
  joins(:response).where(responses: { status: 'rejected' })
}

scope :processed, -> {
  joins(:response).where(responses: { status: ['rejected', 'owed'] })
}