30DAYSトライアル4th

30DAYSトライアル4ht(Rails)のまとめ【DAY21(仮)】

30DAYSトライアル4th(Rails)DAY21(仮)の課題は「Progate Rails コース(7章まで)」です。

としているのは東京フリーランスの記事ではDAY20までしか記載されていないので、僕がその続きを勝手にあってるだけなので、DAY21(仮)としています。

30DAYSトライアル4th(Rails)DAY21(仮)の学習内容

DAY21(仮)学習内容
  • 画像名をデータベースに保存する:テーブルにカラムを追加
  • 画像をアップロードする:画像の送信、保存

画像名をデータベースに保存する:テーブルにカラムを追加

マイグレーションファイルを作成する:rails g migration

モデルを作成した「rails g model モデル名 カラム名:データ型」だとマイグレーションファイルだけでんかう、モデル自体も作成されてしまうので、カラムの追加などの既存のテーブル(モデル)の修正には使用できない。

モデルを作成せずにマイグレーションのみを作成する場合は以下のコマンドを実行する

ファイル名は自由に指定できるが、追加するカラム名などを含めるのが好ましいく、作成するとファイル名の先頭にはファイルの作成日時が自動的に追加されて「db/migrate/YYYYMMDDHHMMSS_ファイル名」に作成される。

マイグレーションファイルの仕組み

作成したマイグレーションフィアルはRubyのコードになっている。

上記のようにchangeメソッドに「add_column :テーブル名, :カラム名, データ型」を記述する必要がある。

画像を表示する:img

通常のHTML同様imgタグで画像の表示を行える。その際に<%= %>で囲めば画像の保存場所をRubyで記述することが可能

画像をアップロードする:画像の送信、保存

画像選択ボタン:input type=”file”

inputタグのtype属性に「file」を指定することで、画像ファイルを選択するボタンを表示することができる。

 

画像の送信:multipart: true

現時点では詳しく理解する必要はなく、画像を送信したい場合はform_tagの引数に「{multpart: true}」を指定する」と覚えておく

ファイルを作成する:File.write

Rubyでファイルを扱う場合は、「Fileクラス」を使用する。

その中でファイルを作成するには「writeメソッド」を使用する。

画像を受け取る:params配列から取得する

inputタグで入力した画像ファイルはテキストと同様に[params[:name属性の値]」で取得できます。

画像の保存:File.binwrite

画像は特殊なファイルなので、FIleクラスの「binwriteクラス」を使用して保存する必要がある。

また、ビューから受け取った画像データは「変数名.read」で取得することができる。

まとめ

30DAYSトライアル4th(Rails)のDAY21(仮)は既存テーブルへのカラム追加と画像などのファイル操作についての学習で、新しいことが目白押しでしたね。

ユーザー管理などをするうえではファイルのアップロードは必須ですからね。

ファイルのダウンロードはファイルの作成場所をコントロールすることで可能なのかなぁ。

まぁそれは次の回で出てくるのかな。

僕はひたすら頑張るのみ。

ABOUT ME
Jyu2
【PC1台で稼ぐブロガー兼Webエンジニアを目指し中】IT情報やWebサービス、アプリなどの情報を発信/SIerで10年以上勤務→ストレスMAXで休職中→ブログとWebの学習を行い脱サラ計画中/ #30DAYSトライアル 1st完了→2nd実施中 / 日々の学習内容をブログにアウトプット / まずは月収5万円を目指す