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