railsアプリでの漏れを防ぐ方法について

アプリの漏れとは新規登録してないのに登録後の動作が出来てしまったりすること

railsでの漏れを防ぐ(分岐によるバリデーション)を行う際にview,controller,helper,modelなどで行えるが最良の方法は「helper」で分岐を行うことである。helperとはある動作を処理する場合にメソッド化して扱えるようにRailsにあらかじめ組み込まれた機能のことであり、link_to、form_with、label_for、image_tagなどがこれに含まれる。helperで分岐を行うメリットとしてMVCアーキテクチャの役割の明確化というのがある(MVCを構成する上で各部分の役割を意識して構築していくことは非常に重要である)。viewでの分岐を例にとるとviewにてif,unless分岐などでviewやpathを切り替えることは好ましくない、なぜならviewは「画面の表示」が役割であり分岐を作ることにより本来の表示機能を複雑化(可読性を低下)してしまうからである、そのためviewよりもhelperに処理を記述した後controllerで分岐を引数にhelperの処理に渡すのが最良である。

 

余談だがhelperのselectメソッドをしようすることでセレクトフォームを作れる(activehash的な)