2017-04-23 10 views
0

私のアプリケーションでは、ユーザーhas_many :jobsとジョブbelongs_to :userです。私はパラノイアの宝石を使用して、ユーザーや仕事をソフトで削除しています。belongs_toのパラノイア

私はユーザーがいると言います。彼は仕事をしています。「変更をプッシュする」。 Job.allを使用して私のリスティングページのすべての仕事を見ることができますが、Joesのアカウントを削除するとすぐにJob.allを使って仕事を見ることはできません。

私はJob.with_deleted.allを使用しようとしましたが、アソシエートbelongs_to :user, -> { with_deleted }を無効にしようとしました。

生成SQL文:あなたは上dependent: :destroyを設定しているようにこれはそう

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 
+0

のようなモデルをunscoping試してみてください? object.deleteまたはor object.destroy?あなたは破壊を使用する必要があります – shiladitya

+0

私は 'User.with_deleted'を使ってユーザーを引き続き使用できます。 ''ユーザー ""が残念です。 "deleted_at" IS NULL "がクエリに追加されました。それが問題です –

答えて

0

は、多くの仕事を持って、そのユーザを削除し、has_manyの上の変更を行います唯一の方法です。多くの仕事をしているユーザーモデルから破壊する

0

Paranoia gemは、タイムスタンプが設定されていないdeleted_at attrがモデルに設定されているデフォルトスコープをあなたのモデルに設定します戻ってきた。 削除するために使用しているものを

User.unscoped.all

関連する問題