ぞえの技術めも

Ruby on Rails勉強中

【161日目】【1日20分のRailsチュートリアル】【第11章】画像のバリデーションをビューに組み込む

Ruby on Railsチュートリアル(第3版)

今日は「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 画像のリサイズ」から。