〜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のメソッド。処理で呼ばれあた段階で、ユーザーがログインしてなければそのユーザーをログイン画面に遷移させることができる。