見出し画像

Ruby on Rails5 学習メモ #03

仕事でエンジニアの方々が使っている言語がRailsなのでなんとなくでも理解をできたらと思い、休みの日に少しずつProgateで学んだことのメモしていく。vol.3.

モデル作成時にデータベースに複数カラムを持たせる

複数カラムを持たせるにはスペース区切りでカラム名:データ型の形式を並べれるコマンドを実行し、db:migrateで保存。

rails g model モデル名 カラム名:データ型 カラム名:データ型
rails db:migrate

重複チェックのバリデーション

既存データの重複チェックはモデルでuniqueness: trueを使ってバリデーションを追加する。データベースでのSELECT処理とか不要なのは楽。カラム名の後にカンマが入るので注意。

class モデル名 < ApplicationRecord
    validates :カラム名, {uniqueness: true}
end

カラム追加のマイグレーションファイル

DBにカラム追加をするにはdb/migrate以下に生成されるマイグレーションファイルをコマンドで生成する。生成されたマイグレーションファイル内のchangeメソッド内に記載する。DBに反映するにはdb:migrateで反映する。

# コマンド
rails g migration ファイル名

# db/migrate以下のマイグレーションファイル内
def change
    add_column :テーブル名, :カラム名, :データ型
end

# コマンド
rails db:migrate

フォームでの画像送信

form_tagに{multipart: true}を追加する必要がある

<%= form_tag("....", {multipart: true}) do %>

Rubyコードでファイル生成

Rubyのコードでファイルを扱うには、Rubyに元から用意されているFileクラスのwriteメソッドを使う。

File.write("ファイルのパスとファイル名","ファイルの中身")

フォームから受け取った画像ファイルを保存

フォームから受け取った画像ファイルを保存するには、File.binwriteを用いる。readメソッドを用いることでその画像データを取得できる。

image = params[:image]
File.binwrite("ファイルのパスとファイル名", image.read)

---

3連休だが、金曜に数ヶ月ぶりに会社というものに行ったらものすごく疲れてしまってあんまり勉強が進まなかった。