〜Ruby on Rails5 〜 新要素
〜ChatAppのDB設計をしよう〜
中間テーブル
2つのテーブルの中間にあるテーブルのこと。多対多の関係にある2つのテーブルの間に挟まって、2つの組み合わせパターンだけをレコードとして保存する。2つのモデルだけでは多対多のアソシエーションを組むことができるないので、中間テーブルを利用して関係を定義する。
through(スルー)オプション
モデルに多対多の関連付けを定義するときに使用する「has_many」メソッドのオプション。
【例】models/photo.rb(photoテーブル)
class photo < ApplicationRecord
has_many :photos_tags
has_many :tags, thuough: :photos_tags
end
【例】models/tag.rb(tagテーブル)
class tag < ApplicationRecord
has_many :photos_tags
has_many :photo, thuough: :photos_tags
end
【例】models/photos_tag.rb(photoとtagの中間テーブル)
class PhotosTag < ApplicationRecord
belongs_to :photo
belongs_to :tag
end
〜ChatAppの基礎を作ろう〜
README(リードミー)
ソフトウェアの仕様、規格、インストール方法などを文書化したアプリケーションの説明書のようなファイル。特徴として、rails newを実行した際に自動生成され、マークダウンと呼ばれる記述方法で記載する。
マークダウン
文書を記述するための軽量マークアップ言語のひとつ。マークダウンで記述されたものは、HTMLに変換される。マークダウンファイルの拡張子は、「.md」となる。
〜ChatAppのフロント実装をしよう〜
box-sizingプロパティ
要素のボックスサイズをどのように算出するか指定できるCSSプロパティ。このプロパティの値に「border-box」を指定すると、要素のボックスサイズにpaddingとborderを含めるようになる。
overflowプロパティ
ボックスの範囲内に内容が収まらない場合に、はみ出した部分の表示の仕方を指定する際に使用する。
⑴scroll
収まらない部分はボックスからはみ出さない。内容が収まらない場合には、スクロールバーなどが表示される。
label要素
フォームの中でフォームの項目名とフォームの入力要素(画像選択フォーム、プルダウン、チェックボックスなど)を関連付けるための要素。
〜ChatAppのユーザー管理機能を実装しよう〜
authenticate(オーセンティケイト)_user!メソッド
ログイン状態によって表示するページを切り替えるdeviseのメソッド。処理で呼ばれあた段階で、ユーザーがログインしてなければそのユーザーをログイン画面に遷移させることができる。