ActiveRecord scope
과 같은 관계를 수정하는 방법은 무엇입니까?범위에서 관계를 업데이트 하시겠습니까?
는 특히, 나는이 작업을 수행 할 수 있도록하려면 : fake_destroy_all
내가 만들려고 해요 기능이
Model.some_scope.fake_destroy_all
. .update_all(deleted: true)
과 거의 같습니다.
def fake_destroy_all(relation = Model)
relation.update_all(deleted: true)
end
#...
Model.fake_destroy_all(Model.some_scope)
을하지만 그 이상이 아니다 :
약한 대안이 될 것입니다. 내가하고 싶은 것은 다음과 같습니다 :
scope :fake_destroy_all, update_all(deleted: true)
그러나 그것은 작동하지 않습니다.
제가 설명하는 것과 비슷한 것을 할 수 있습니까?
def self.fake_destroy_all
self.update_all(deleted: true)
end
그것은 관계의 모든 클래스 메소드를 유지하는 것이 밝혀 :
다음 페이지를 참조하십시오. http://stackoverflow.com/questions/23017070/how-to-hide-records-rather-than-delete-them-soft-delete-from-scratch/23017174#23017174 – MrYoshiji