2011-06-11 3 views
3

사용자가 전자 메일 알림 빈도를 구성 할 수있게되기를 기대합니다.레일 앱에서 전자 메일 빈도 구성을위한 전략

나는 그들에게 일반적인 옵션을 제공하고 싶습니다 : 직접 이메일, 매일 매주 다이제스트

를 ¿ 레일 3 응용 프로그램 내에서이 문제를 구축 할 수있는 최선의 전략이 될 것입니다 무엇?

감사합니다.

답변

5

선호도를 저장하는 users 테이블에 email_frequency_preference 문자열 열을 가질 수 있습니다. 그럼 당신은 이메일 주파수 환경에서 사용자를 찾을 수 있습니다 나는 또한 이름과 설명 더불어, Event 모델을 제안하며

User.find_all_by_email_frequency_preference # :instantly | :weekly | :monthly 

, 당신의 사용자에게 통지 할 일이 발생할 수있는 이벤트를 나타냅니다. 그럼 당신은 자신의 생성 날짜별로 이벤트를 찾을 수 있습니다

이벤트가 발생할 때마다
  1. , 인스턴트 이벤트 이메일 알림을 선호하는 모든 사용자를 찾을 수 :

    Event.find :created_at => start_date..Date.today 
    

    지금, 당신은 개별적으로 세 가지 주파수 설정을 처리해야 즉시 그들에게 보내십시오. 매주의 끝에서

  2. , 그 주에 일어난 모든 이벤트 찾기 : 다음 주 이벤트 이메일 알림을 선호하는 모든 사용자를 찾아 그들에게 보내, 하나의 이메일에 자신의 설명을 결합

    start_date = Date.today.beginning_of_week 
    

    을 . 매월 끝에

  3. , 동안 그 달에 일어난 모든 이벤트를 찾습니다 후 매달 이벤트 이메일 알림을 선호하는 모든 사용자를 찾아에 보내, 하나의 이메일에 자신의 설명을 결합

    start_date = Date.today.beginning_of_month 
    

    을 그들.

+0

위대한 출발점 Matheus, 감사합니다! 준비가 완료되면 여기에 내 솔루션을 게시하겠습니다. – dgilperez

+0

안녕 dgilperez 솔루션을 준비 했습니까? 그것은 나에게 매우 도움이 될 것이다. –

관련 문제