Discourse Retort

네, 그렇게 할 수는 있겠네요. 다만 약간 해킹적인 방식이 될 것 같습니다. :wink:

그 워크어라운드가 시간이 지나도 계속 유효할 것이라고 단정 짓기는 어렵습니다. 또한 다소 위험할 수 있습니다. 예를 들어, 해당 코드를 그대로 실행하면 사용자의 post_undo_action_window_mins 사이트 설정이 변경된 상태로 남게 됩니다. 마이그레이션의 끝부분에서 이를 되돌릴 수는 있지만, 가디언을 우회하기 위해 이렇게 즉석에서 설정을 변경하는 것은 이상적이지 않습니다.

이상적으로는 ReactionManager 인터페이스를 약간 수정하여, 리포트(retorts)를 반응(reactions)으로 안정적으로 마이그레이션할 수 있도록 하는 것입니다. 현재는 클라이언트에서 오는 요청만 처리하도록 구성되어 있습니다.

이를 위한 한 가지 방법은 다음과 같습니다.

  • toggle!의 가디언을 ensure_can_toggle 메서드로 추상화합니다.
  • ensure_can_toggle 메서드에 force 옵션을 적용합니다.

이것은 Discourse의 다른 부분에서 마이그레이션이나 백엔드 가져오기를 처리할 때 일반적으로 취하는 접근 방식입니다(app/ 또는 lib/에서 force를 검색하면 몇 가지 예시를 볼 수 있습니다).

이해되시나요?

2개의 좋아요