내 응용 프로그램 컨트롤러에서 데이터베이스 로깅 요청을 수행하려고합니다. 하지만 나는 이 아니라가 크롤러의 요청을 기록하지 않도록하고 싶습니다. IP 주소로 식별 할 수 있다고 가정 해보십시오. 그래서 내와 ApplicationController에서이 같은 필터 전에를 만들 수 있습니다ApplicationController에서 상수가 될 초기화하는 방법은 무엇입니까?
응용 프로그램 컨트롤러에서 나는@crawler_ips
를 초기화 할
do_log_request unless @crawler_ips.include? ip_address
? 데이터베이스에서로드하려고하지만 응용 프로그램이 시작될 때 한 번만로드한다고 가정 해보십시오.
클래스 변수를 사용하려고 생각했지만 class vars를 사용하는 것은 좋지 않다는 경고가 나타납니다 (사실). 요청이 올 때마다 @crawler_ips
을 초기화하는 것을 원하지 않습니다 (모든 요청마다 새 컨트롤러가 만들어지기 때문에 발생합니다.)
대답은 Thx입니다. 초기화 프로그램은 어떻게 생겼습니까? 레일 도우미 메서드를 사용하면 ApplicationHelper의 메서드를 의미합니까? 나는 여전히 레일에 약간 새로운 편이다. – vrepsys
@vrepsys 당신은 ApplicationHelper에 메서드를 넣을 수 있지만 일반적으로 각 도우미 모듈에는 IP 관련 메서드에 대한 새로운 도우미 모듈을 제안 할 관련 메서드 만 포함되도록 도우미를 분할하는 것이 좋습니다. 헬퍼 파트는 완전히 선택적입니다. 컨트롤러 및 뷰의 편의를 위해서입니다. 정교하게 대답을 업데이트했습니다. – animatedgif