[Rails] Paranoia의 with 논리적 삭제deleted와joins를 동시에 사용하고 싶습니다. (또는includes)
결론
has_many :event_users, -> { with_deleted }, dependent: :destroy
User.joins(:event_users).where(event_users: { event_id: @event.id })
[#<User id: 1, email: "[email protected]", name: "ユーザー1", nomi_joy_id: "nomijoy1", created_at: "2020-08-24 08:39:25", updated_at: "2020-08-24 08:39:25", belongs: "オーシャンティック航空(株) 東自損3課", position: "副主任", image_id: "c50f454fa1b3c9e86e3033455f6fe88b5620bfd41a9cb92677...">,
#<User id: 2, email: "[email protected]", name: "ユーザー2", nomi_joy_id: "nomijoy2", created_at: "2020-08-24 08:39:26", updated_at: "2020-08-24 08:39:26", belongs: "オーシャンティック航空(株) 東自損3課", position: "", image_id: "fdf0cc7df1524ced9088ebbdf2012fba4fd35ed9455bf2987b..."]
자세하다
전제 조건
飲み会1
출석飲み会ユーザー1
, 飲み会ユーザー2
결석(논리 삭제)이다.EventUser.where(event_id: @event.id)
[#<EventUser:0x00007fa7bd62b7d8
id: 1,
user_id: 1,
event_id: 1,
fee: 4000,
fee_status: false,
deleted_at: nil,
created_at: Mon, 24 Aug 2020 17:39:40 JST +09:00,
updated_at: Mon, 24 Aug 2020 17:39:40 JST +09:00>]
with_deleted
를 사용할 때도 논리적으로 삭제된 데이터를 검색할 수 있음EventUser.with_deleted.where(event_id: @event.id)
[#<EventUser:0x00007fa7bd62b7d8
id: 1,
user_id: 1,
event_id: 1,
fee: 4000,
fee_status: false,
deleted_at: nil,
created_at: Mon, 24 Aug 2020 17:39:40 JST +09:00,
updated_at: Mon, 24 Aug 2020 17:39:40 JST +09:00>,
#<EventUser:0x00007fa7bd62b698
id: 2,
user_id: 2,
event_id: 1,
fee: 3500,
fee_status: false,
deleted_at: nil,
created_at: Mon, 24 Aug 2020 17:39:40 JST +09:00,
updated_at: Mon, 24 Aug 2020 17:39:40 JST +09:00>]
하고 싶은 일
이번에는 "사용자 모델을 시작으로 결석주회 1과 관련된 주회 이용자를 포함시키려 한다"고 덧붙였다.
joins
(또는 includes
와 where
의 조합with_deleted
의 이미지는 어떻게 써야 하나어쨌든 생각나는 걸 해보려고 했는데 잘못됐어요.
User.joins(:event_users).with_deleted.where(event_users: { event_id: @event.id })
여러모로 조사한 결과, 이것으로 완성되었다
has_many :event_users, -> { with_deleted }, dependent: :destroy
User.joins(:event_users).where(event_users: { event_id: @event.id })
[#<User id: 1, email: "[email protected]", name: "ユーザー1", nomi_joy_id: "nomijoy1", created_at: "2020-08-24 08:39:25", updated_at: "2020-08-24 08:39:25", belongs: "オーシャンティック航空(株) 東自損3課", position: "副主任", image_id: "c50f454fa1b3c9e86e3033455f6fe88b5620bfd41a9cb92677...">,
#<User id: 2, email: "[email protected]", name: "ユーザー2", nomi_joy_id: "nomijoy2", created_at: "2020-08-24 08:39:26", updated_at: "2020-08-24 08:39:26", belongs: "オーシャンティック航空(株) 東自損3課", position: "", image_id: "fdf0cc7df1524ced9088ebbdf2012fba4fd35ed9455bf2987b..."]
겸사겸사 말씀드리겠습니다.
이번과 반대(?)의 "다수가 논리적으로 객체를 삭제할 때"는 다음과 같습니다.
class Person < ActiveRecord::Base
belongs_to :group, -> { with_deleted }
end
Person.includes(:group).all
(말하자면 GiitHub에서 상술한 내용을 발견하고 이번 방법을 알아차렸다!)인용하다
Reference
이 문제에 관하여([Rails] Paranoia의 with 논리적 삭제deleted와joins를 동시에 사용하고 싶습니다. (또는includes)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kyoooko/items/cfd3d0481f6df9a56b55
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Rails] Paranoia의 with 논리적 삭제deleted와joins를 동시에 사용하고 싶습니다. (또는includes)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kyoooko/items/cfd3d0481f6df9a56b55텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)