私のコントローラの1つでは、beforeInterceptorクロージャでエラーチェックコードを書いています。Grails:beforeInterceptorのページをレンダリングする
if (getUser()?.courses?.size() == 0) {
render(view: '/base/errorMessage', model: [errorMessage: "You don't have any courses!"]);
return false;
}
このレンダーコールは、プログラム全体にわたる素晴らしいエラーページを表示します。
ただし、falseを返すと何も表示されません。私がtrueを返すと、エラーページは正常に表示されますが、アクションはとにかく実行されます(レンダリングされませんが、ロジックはまだ実行されます)。これには、重複エラーチェックが必要で、インターセプタの目的を無効にする必要があります。
redirect()コールはまだ正常に動作しますが、エラー表示を別のアクションに移動するのは面倒です。/app/coursesの代わりに、URLに/ app/error/errorMessageが表示され、エラーページに直接移動することができます。それでは、そのアクションにメッセージを送るという質問があります - flash.message? session.var?
良い方法がありますか?
これは本当に私を助けません - 私は単にコントローラを傍受し、ユーザーにメッセージを表示しようとしています。実際の例外ではありません。 –