최신 게시물에서 대량으로 주제 숨기기가 의도대로 작동하지 않음

안녕하세요,

현재 Suppress category from latest 플러그인을 사용하여 /latest 페이지에서 주제를 숨기면서도 해당 카테고리 내부에서는 여전히 표시되도록 설정하고 있습니다. /latest에서 숨기고 싶은 카테고리가 약 200개 있고, 홈페이지에 주제가 표시되어야 하는 카테고리는 약 10개뿐입니다.

이를 위해 Rails 콘솔에서 다음 코드를 실행해 보았습니다:

Category.all.each do |cat|
  cat.custom_fields["suppress_latest"] = true
  cat.save_custom_fields(true)
end

명령은 오류 없이 실행되는 것 같습니다(심지어 {"suppress_latest"=>"t"}를 반환하기도 합니다). 하지만 /latest 페이지를 확인해 보면 해당 카테고리의 주제들이 여전히 보입니다.

이미 시도해 본 단계들은 다음과 같습니다:

  • ./launcher rebuild app 및 ./launcher restart app 실행
  • Rails 콘솔을 통해 해당 카테고리들의 커스텀 필드가 "t"로 설정되어 있는지 확인
  • 캐시도 정리해 보았지만 아무런 변화가 없습니다

커스텀 필드를 설정한 후에도 이 카테고리들의 주제가 홈페이지에 계속 표시됩니다. 이 문제를 경험해 보신 분이나 /latest에서 주제를 효과적으로 일괄 비활성화하는 방법을 찾으신 분이 계신가요? 하위 카테고리(subcategory)와 관련된 알려진 호환성 문제가 있거나, 플러그인이 비활성화를 위해 다른 키/값을 사용해야 하는 건가요?

도움이나 대안적인 접근법이 있다면 정말 감사하겠습니다!

감사합니다!

코어 코드를 빠르게 살펴봐도 suppress_latest를 찾을 수 없습니다.

모든 카테고리를 기본적으로 음소거 사이트 설정을 원하시는 것일까요?

플러그인 제작자입니다!

다음과 같이 되어야 합니다.

cat.custom_fields[:suppress_category_from_latest] = true

하지만… 이 값들은 클래스 변수에도 캐시됩니다. 이 문제를 해결하는 가장 쉬운 방법은 카테고리도 save!하는 것입니다(참고: 여기).

따라서 다음과 같이 하면 작동합니다.

Category.all.each do |cat|
  cat.custom_fields[:suppress_category_from_latest] = true
  cat.save_custom_fields(true)
  cat.save!
end

RGJ님,

안내해 주셔서 정말 감사합니다. Rails 콘솔에서 다음 명령어를 실행했습니다:

Category.all.each do |cat|
  cat.custom_fields[:suppress_category_from_latest] = true
  cat.save_custom_fields(true)
  cat.save!
end

모든 것이 완벽하게 작동했습니다! 이제 제 카테고리들이 /latest 페이지에서 성공적으로 숨겨졌습니다. 도움을 주셔서 진심으로 감사드립니다.

감사합니다,