【发布时间】:2017-04-23 18:19:40
【问题描述】:
在我的应用程序中,用户 has_many :jobs 和工作 belongs_to :user。我正在使用 paranoia gem 软删除用户和作业。
假设我有一个用户 Joe,他的工作是“推动更改”。我可以使用Job.all 在我的列表页面上查看所有工作,但一旦我删除乔斯的帐户,我就无法再使用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
【问题讨论】:
-
你用什么来删除? object.delete 还是 object.destroy?你应该使用destroy
-
我是,我仍然可以使用
User.with_deleted作为用户。令人沮丧的是,"users"."deleted_at" IS NULL被添加到我的查询中,这就是问题
标签: ruby-on-rails ruby-paranoia