この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
初めまして新米エンジニアのカツオです。
KBMJに入ってから初めてプログラミングというものに触れ日々奮闘しております。
まだ入ってから日も浅いので、
プログラミング初心者の僕がruby on railsの開発の中つまづいたことを
紹介することがメインになるかと思います。
ドーゾよろしくお願いします。
そんなわけで今日は
railsでファイルなどをアップロードの仕方を紹介します。
ファイルをアップロードするときはform_tagに multipartオプションが必要になります。
<% form_tag ( {:action => 'create' }, {:multipart => true } ) %>
<label for="image">画像をアップロード</label><%= file_field_tag 'image' %>
<%= submit_tag '作成' %>
<%= end_form_tag %>
multipartオプションがないと
例えば
「tanuki.jpeg」という画像の場合、
「tanuki.jpeg」というファイル名だけをstringとして受け取ってしまう訳です。
つまり画像情報を受け取れないのです。
だからファイルを取り込むときは
:multipart => true
をform_tagの第二引数に指定してあげましょう。
そうすることによって
StringIO(stringを拡張したもの)でクエリーがやってきて
画像が取り込めるようになるわけです。
とまぁこういったレベルのことを紹介できたらいいなと思います。
ではでは!