私は受信メールを取り込み、そのメールを処理するメソッドを構築しています。途中で、電子メールが正常に処理されないようにする多くのことがあります。Rails 3 - 複雑なSwitch文/ If文を処理する方法
コードにはSwitch Statements(case/when/end)とIf文がいっぱいです。私は、これを行うよりスマートでクリーンな方法を学びたいと思います。さらに、エラーを追跡し、最後にエラーを返す電子メールを送信する場所が1つあります。このようなものはレールで可能ですか?
その後@error = []
Case XXX
when xxxx
if XXXXX
else
@error = 'You don't have permission to reply to the xxxxx'
end
else
@error = 'Unfamilar XXXX'
end
最後に何かのような...ここに助けを
If @errors.count > 0
Send the user an email letting them know what went wrong
else
do nothing
end
感謝。上記のようなロジックを書く方法を教えてくれる他のチュートリアルを知っていれば、それは素晴らしいことでしょう。今、私はcase/if文が3レベル深くなっていますが、それを直に保つのは難しいです。
ありがとうございます。
私は非常に例外を好みます。このメソッドからの暗黙的な終了は、ほとんどの場合、まさにあなたが望むものです。 – aceofspades
実際の例外を処理するときにのみ例外を使用します。予想されるフローの場合は、例外を使用しないでください。たとえば、ユーザーが入力したデータは間違っていることが多く、例外を伴って決して処理するべきではありません。コードをクリーンアップする本当の方法は、小さな論理チャンク(メソッドとクラス)に分割することです。ネストされたケースとifを持つことは、通常、デザイン上の問題です。この場合の例外の使用は、まさにバンダイですが、実際の解決策ではありません。 – iain
複雑なケースがある場合は、例外を使用するのではなく、バリデーター関数に抽象化する方がよい場合があります。あなたの選択肢を測ります。 – moeffju