、私はほとんどいつものように、フラッシュ誤差を設定し、リダイレクト異なるチェックを持っている:フィルタを使用する前に、またはコントローラにとどまっていますか?私のコントローラのアクションで
def create
flash[:error] = I18n.t('error.no_resources') and redirect_to research_center_url and return if not resource_report[:has_resources]
flash[:error] = I18n.t('error.no_deps') and redirect_to research_center_url and return if not research.fulfil_requirements?(active_city)
...
end
これは正常に動作しますが、しかし、私は多分before_createのための私のモデルのものを持つよりも優れているチェックチェックすることを考えましたコントローラ内のチェック(ただし、フラッシュメッセージは一般にコントローラ内にあるはずです)。
しかし、実際には正常にフェッチできない非モデル関連の情報が含まれているため、これらのチェックを私のモデルに入れることはできません。だから私の質問は、どのように例外ではない通常のアプリケーション関連のエラーのあなたのコントローラをチェックし、ユーザーにフラッシュバックする必要がありますか?モデルコールバックや他の方法で、私がここでやっているように、コントローラでチェックをしていますか?
問題は、チェックが標準ではないということです。それらのうちのいくつかは、レベルに関するもの、要件に関するもの、役割に関するものなどです。しかし、同じパターンを持つ小切手のいくつかについては、アイデア+1が好きです。 – Spyros
私にとって、フィルタを使用するのはDRYコードだけでなく、コントローラの動作をリーンに保つことです。また、あなたがそれらのフラッシュメッセージでやっていることはまさにそれです - あなたがそこに着く前に、フィルタリングしてアクションが呼び出されるのを防ぐ。 – aceofspades