質問: ビューファイルのフォームとかで`required: true`を書くと、空で送信することを防げますが、これがあるならモデルでバリデーションをかける必要が無いのかな、、、なんて思うことがあります。 `required: true`を書いてもモデルででバリデーションをかける理由は、何なのでしょうか? よろしくお願い致します。
回答: JavaScriptレベルのバリデーションと、Railsでのバリデーションは、**目的が異なります**。 Rails側でのバリデーションは、データの一貫性を保つためのもので、JavaScriptのバリデーションは、それを「いちいち送信しなくてもエラーにする」という**利便性**のためのものです。 JavaScriptだけでバリデーションしていると、開発ツールでフォームを書き換える、そもそも別なルートから値だけPOSTしてくる、というような不正な入力があったときに、エラーとできなくなってしまいます。