InfoGrab DocsInfoGrab Docs

모델 및 서비스 스팸 방지 및 CAPTCHA 지원

ActiveRecord 모델과 서비스 레이어에 스팸 방지 및 CAPTCHA 지원을 추가하는 방법을 설명합니다.

REST API, GraphQL API 또는 Web UI에 스팸 또는 CAPTCHA 지원을 추가하기 전에 먼저 다음에 필요한 지원을 추가해야 합니다: 백엔드 ActiveRecord 모델. 서비스 레이어. 지원하는 스팸 또는 CAPTCHA 요청 구현 유형에 관계없이 다음 변경 사항의 전부 또는 대부분이 필요합니다. GraphQL API를 기반으로 완전히 구축된 일부 최신 기능에는 컨트롤러가 없을 수 있으며, 컨트롤러에 mark_as_spam 액션을 추가할 필요가 없습니다. 이를 수행하려면: ActiveRecord 모델에 Spammable 지원 추가 . 컨트롤러에 mark_as_spam 액션 지원 추가 . 서비스의 execute 메서드에 check_for_spam 호출 추가 . ActiveRecord 모델에 Spammable 지원 추가 # 모델 클래스에 Spammable 모듈을 포함합니다: include Spammable 스팸 검사 대상 필드를 나타내기 위해 attr_spammable 을 추가합니다. 모델당 최대 두 개의 필드( "title" 과 "description" )를 지원합니다. 어떤 필드를 "title" 또는 "description" 으로 지정할지 설정할 수 있습니다. 예를 들어, 다음 줄은 content 필드를 description 으로 지정합니다: attr_spammable :content, spam_description: true #check_for_spam? 메서드 구현을 추가합니다: def check_for_spam?(user:) # Return a boolean result based on various applicable checks, which may include # which attributes have changed, the type of user, whether the data is publicly # visible, and other criteria. This may vary based on the type of model, and # may change over time as spam checking requirements evolve. end 이 메서드의 구현 예시는 기존의 다른 Spammable 모델을 참조하여 필요한 로직 검사를 확인하세요. 컨트롤러에 mark_as_spam 액션 지원 추가 # SpammableActions::AkismetMarkAsSpamAction 모듈은 컨트롤러에 #mark_as_spam 액션 지원을 추가합니다. 이 컨트롤러를 통해 관리자는 Admin 영역의 스팸 로그 섹션 에서 연결된 Spammable 모델의 스팸을 관리할 수 있습니다. 컨트롤러에 SpammableActions::AkismetMarkAsSpamAction 모듈을 포함합니다. include SpammableActions::AkismetMarkAsSpamAction #spammable_path 메서드 구현을 추가합니다. 스팸 관리 페이지는 편집 후 이 페이지로 리다이렉트됩니다. 필요한 경로 로직의 예시는 기존의 다