저는 Discourse 애플리케이션에서 답변 수에 따라 주제(토론)를 표시하고 싶습니다. Rails 쿼리는 만들었지만, 이 스코프를 추가하고 표시해야 할 뷰 부분이 어디인지 찾지 못했습니다.
Discourse의 동작 방식을 변경하려면 Discourse 플러그인 개발 - 1부 - 기본 플러그인 만들기 또는 Discourse 테마 개발 입문 가이드를 참고하시기 바랍니다.
새 플러그인을 만들고 싶은 게 아니라, 백엔드에서 카테고리 및 토픽 쿼리를 변경해서 뷰에 표시하고 싶은데, 토픽 목록 링크가 어디에 표시되는지 찾을 수가 없어요.
오케이, 시몬. 감사합니다.
도움이 될 것 같아요.
이 작업을 위해 코드를 수정할 필요는 없다고 생각하지만, 사이트의 홈페이지에서 주제들이 새로운 순서로 표시되도록 하려면 사이트의 rails 콘솔에서 명령을 실행해야 할 수 있습니다.
desktop category page style 사이트 설정에서 "Categories with Featured Topics"를 선택하면, 강조 표시된 주제들이 표시되는 순서는 각 카테고리의 “Topic List Sort By” 설정 값에 의해 결정되어야 합니다. 불행히도, 카테고리의 “Topic List Sort By” 설정을 변경해도 그 변경 사항이 사이트의 홈페이지에 즉시 반영되지 않습니다. Discourse가 홈페이지에 표시되는 강조 표시된 주제들을 어디에 캐싱하는지, 또는 캐시를 무효화하는 데 어떤 동작이 사용되는지 정확히 알지 못합니다.
제 사이트에서 테스트해 본 결과, rails 콘솔에서 다음을 실행하면 캐시를 무효화할 수 있음을 확인했습니다:
# 수정하려는 결과를 위한 카테고리를 변수에 할당합니다. 예를 들어:
c = Category.find(42)
# 그리고 실행
CategoryFeaturedTopic.feature_topics_for(c)
실행 후, 주제들은 해당 카테고리의 “Topic List Sort By” 설정에서 선택한 순서대로 홈페이지에 표시되어야 합니다. 이 명령을 실행하는 것이 문제를 일으킬 것이라고 생각하지는 않지만, rails 콘솔에서 명령을 실행할 때는 항상 주의해야 합니다.
더 쉬운 방법이 있을 것이라고 확신합니다. 아마도 이전의 강조 표시된 주제 목록에 대한 캐시가 무효화되도록 Discourse를 24시간까지 기다리면 될 수도 있습니다. 코드에서 캐시가 무효화되는 부분을 찾지 못하고 있습니다. 관련 코드는 여기인 것 같습니다: discourse/app/models/category_featured_topic.rb at main · discourse/discourse · GitHub.
해당 쿼리를 실행해 보았는데, 주된 문제는 홈 화면에 이 '추천 주제’가 어디에 표시되는지, 그리고 UI에 이 데이터를 표시하기 위한 코드가 어떤 .html 파일에 있는지 파악하는 것입니다.
정렬해야 할 데이터를 가져오기 위한 쿼리는 이미 작성해 두었지만, 이 쿼리를 어떤 모델에 배치해야 하는지 결정하는 것이 문제입니다.

