ユーザーがいくつかの技術を研究し、それに対する報酬を得ることができる状況があります。現在、これらの報酬は、いくつかのアイテムを作成したり、生産ブーストを取得したりできるようなものです.
私が現在行っているのは、コントローラーでフラッシュ メッセージとリダイレクトを処理することです。では、アイテムを作成するために特定の技術を研究しなければならない場合を想像してみてください。私のコントローラーは次のようになります:
def create
flash[:error] = I18n.t('error.not_researched') and redirect_to research_url and return if not current_user.has_research?(research)
....
....
end
もちろん、これはうまく機能しますが、それが最善の方法であるかどうかはわかりません。before_create フィルターを使用してそれを行うことを考えましたが、この方法ではフラッシュメッセージを実際に設定することはできず、ほとんど範囲外です。
したがって、コードが可能な限り DRY であり、適切に記述されるように、ベスト プラクティスの観点からどのように対処するかをお聞きしたいと思います。