在我的应用程序中,一个用户has_many :jobs
和一个工作belongs_to :user
。我正在使用 paranoia gem 软删除用户和作业。
假设我有一个用户 Joe,他有一份工作“推送更改”。我可以使用 来查看我的列表页面上的所有工作Job.all
,但是一旦我删除 Joes 的帐户,我就看不到该工作正在使用Job.all
了。
我曾尝试使用Job.with_deleted.all
并尝试取消关联的范围belongs_to :user, -> { with_deleted }
。
生成的 SQL 语句:
SELECT "jobs".* FROM "jobs" INNER JOIN "users" ON "users"."id" = "jobs"."user_id" AND "users"."deleted_at" IS NULL WHERE "jobs"."deleted_at" IS NULL ORDER BY users.name ASC