Ich habe eine trashable Sorge, die es einem Benutzer ermöglicht, bestimmte Dinge zu löschen ("löschen").Modellverknüpfung mit einem Bereich für trashable Modul
Das Problem ist, dass, obwohl das Element verworfen werden kann, es immer noch referenziert werden muss, wenn Sie etwas älter anzeigen. Wenn Sie das jetzt tun, wird es das Objekt nicht finden, da ich die default_scope
geändert habe, um nur zu zeigen, wo der Papierkorb falsch ist.
Hier ist mein trashable Modul:
module Trashable
extend ActiveSupport::Concern
included do
default_scope { where(trashed: false) }
scope :trashed, -> { unscoped.where(trashed: true) }
validates :trashed, inclusion: { in: [true, false] }
end
def trash
update_attribute :trashed, true
end
end
jetzt habe ich ein Order
Modell, in dem Sie eine Bestellung anzeigen können. Wenn wir zum Beispiel ein Produkt ausrangieren, möchte ich immer noch, dass der Benutzer seine Bestellung einsehen und das Produkt sehen kann.
Jetzt bin ich nicht in der Lage, dass für den Zugriff mit einem Modell Verein wie:
has_many :products
und macht es so, dass es sowohl in dem Trashed ist falsch und wahr.
Weiß jemand, wie man das erreicht?
Ich denke, dass Sie mit diesem [Edelstein] gehen können (https://github.com/ActsAsParanoid/acts_as_paranoid) –
aber können Sie das explizit angeben: 'has_many: Produkte, {unscope (: wo) .where trashed: [ wahr, falsch]} '? –