【161日目】【1日20分のRailsチュートリアル】【第11章】画像のバリデーションをビューに組み込む
今日は「11.4.2 画像の検証」の画像のバリデーションをビューに組み込むところから。
11.4.2 画像の検証
リスト11.60やリスト11.61で定義した画像のバリデーションをビューに組み込むために、クライアント側に2つの処理を追加しましょう。
画像の拡張子のチェックと画像の容量チェックの処理を追加する。
これらの追加的なチェック機能をまとめると、リスト11.62のようになります。
拡張子のチェックは簡単なんだな…。
画像の容量チェック&アラート表示はjQueryを使うらしい。
app/views/shared/_micropost_form.html.erb
: <span class="picture"> <%= f.file_field :picture, accept: 'image/jpeg,image/gif,image/png' %> </span> <% end %> <script type="text/javascript"> $('#micropost_picture').bind('change', function() { var size_in_megabytes = this.files[0].size/1024/1024; if (size_in_megabytes > 5) { alert('Maximum file size is 5MB. Please choose a smaller file.'); } }); </script>
ちなみに、リスト11.62のようなコードでは大きすぎるファイルのアップロードを完全には阻止できない、という点を覚えておいてください。
(中略)
こういった場合にも対応できるようにするため、リスト11.61で実装したサーバー側のバリデーションも重要なのです。
クライアント側、サーバー側それぞれの処理だけではちょっと不足してて、クライアント側ではフォームからの投稿に対してガードをかけつつ、サーバー側ではそれ以外での送信からしっかり守る!って感じかな~。
今日の学習時間は【14分】。
次は「11.4.3 画像のリサイズ」から。