0
我有一個模型設置如下所示:default_scope行不通的作用域
class Subject
has_one :background_job, as: :backgroundable_job
has_many :sub_subjects
default_scope { includes(:background_job).where(background_jobs: { backgroundable_job_id: nil }) }
end
的default_scope返回沒有background_job
這裏的主題是SubSubject型號:
class SubSubject
belongs_to :subject
scope :ordered, -> { joins { subject }.order('subjects.order_number') }
end
但是當我做subject.sub_subjects.ordered時出現以下錯誤:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "background_jobs"
LINE 1: ...ubjects"."id" = "sub_subjects"."subject_id" AND "backgroun...
當我打電話subject.subjects(不下令),它只是正常工作
我也嘗試設置default_scope與Subject自己的屬性,並能正常工作,以及
我不能搞清楚什麼是錯的,請幫
編輯:
的SQL查詢軌進行,當我做SubSubject.joins {}受.order( 'subjects.order_number')是:
SELECT "sub_subjects".* FROM "sub_subjects" INNER JOIN "subjects" ON "subjects"."id" = "sub_subjects"."subject_id" AND (background_jobs.backgroundable_job_id IS NULL) ORDER BY subjects.order_number