0

Rails 3 アプリケーションへの JSON 投稿を受信しようとしています。JSON 投稿は、次のいずれかの件名を持つメールです。

BACKUP_PASS/VERIFY_PASS
BACKUP_FAIL/VERIFY_FAIL
BACKUP_FAIL/VERIFY_PASS
etc..

コントローラーに次のコードがあります。

def backupnotification
  email_payload = JSON.parse(params[:payload])
  Activity.create(:action => 'failed to backup', :details => email_payload['recipient'], :user_id => '28')
end

また、routes ファイルに以下を追加しました。

post  '/api/activity/backupnotification' => 'activities#backupnotification'

明らかに、これActivityにより、バックアップの状態に関係なく、新しいレコードが作成されます。私がやりたいのは、failed to backupFAILという用語が件名のどこかに現れたsuccessfully backed up場合、およびFAILという用語が存在しない場合のアクションを持つアクティビティを作成することです。

JSON 投稿 (email_payload) には、 という属性が含まれていますsubject。私はこのようなことができるかどうか疑問に思っていました:

if email_payload['subject'] => "FAIL"
 ...
else
 ...
end

これを行う最良の方法は何ですか?

4

1 に答える 1

1

受信者と同様の方法で件名にアクセスできると仮定すると、次のようなことを試すことができます。

def backupnotification

  email_payload = JSON.parse(params[:payload])

  if email_payload['subject'].include?('FAIL')
    action_message = 'failed to backup'
  else
    action_message = 'successfully backed up'
  end

  Activity.create(
    :action =>  action_message,
    :details => email_payload['recipient'],
    :user_id => '28')
end
于 2013-05-08T09:43:58.517 に答える