2009-05-06 1 views
0

필자가 작성한 부동산 응용 프로그램의 일부는 사용자가 위치를 구독 할 수있게하고 해당 위치에서 새 속성을 사용할 수있게되면 사용자 그들에게이를 알리는 이메일을 받게됩니다.Ruby on Rails 알림 데몬이 동일한 정보를 두 번 이상 이메일로 보내지 못하도록 방지

매칭을 처리하기 위해 몇 시간에 한 번 배경 프로세스를 실행할 계획입니다.

지금은 위치라는 모델이 있으며 계획은 알림이라는 다른 모델을 추가하는 것입니다. 위치 모델에는 위도와 경도가 있으며 알림 모델도 있습니다. 같은

뭔가 :

create_table "locations", :force => true do |t| 
    t.decimal "lat",   :precision => 15, :scale => 10 
    t.decimal "lng",   :precision => 15, :scale => 10 
end 

create_table "notifications", :force => true do |t| 
    t.decimal "lat",   :precision => 15, :scale => 10 
    t.decimal "lng",   :precision => 15, :scale => 10 
    t.string "user_name" 
    t.string "user_email" 
end 

분명한 것은 할 수는 위치 목록을 반복하고 한 통지에 다음 알림 모델에 정의 된 USER_EMAIL에 메일을 보내와 일치합니다.

내가 피하려고하는 것은 한 위치에 대해 동일한 이메일을 두 번 이상 보내는 것입니다. 몇 시간에 한 번씩 프로세스가 실행됩니다.

"has_been_mailed"라는 알림 모델에 다른 필드를 추가 할 생각입니다.이 필드는 메일이 보내지면 true로 설정되지만 나중에 추가 된 다른 위치의 업데이트는받지 않습니다.

누구든지이 기능을 구현하는 가장 좋은 방법은 무엇입니까?

+0

자,이 모든 것이 잘못된 각도에서 접근하고있는 것처럼 보입니다. 그러나 더 자세한 내용 없이는 말하기가 어렵습니다. – kch

답변

0

모델을 많이 변경하지 않고 두 표 모두에 타임 스탬프 입력란 created_atupdated_at이 있어야합니다.

메일러 스크립트를 마지막으로 실행 한 이후로 업데이트 된 위치 및 알림에 대해서만 쿼리 할 수 ​​있습니다.

+0

created_at 및 updated_at 필드를 완전히 잊어 버렸습니다. 완전한. 감사. – KJF