タイトルを動的に表示する
カスタムヘルパーを使い、動的にタイトルを表示する。
今回実装したいこと
下の写真のようにタイトルを表示したい
今回つまづいたところ
- カスタムヘルパーの定義
- 三項演算子とは?
- empty? メソッドとは
カスタムヘルパーの定義
module ApplicationHelper def page_title(page_title = '') base_title = '掲示板' page_title.empty? ? base_title : page_title + " | " + base_title end end
三項演算子とは?
三項演算子を使用するとif文を短く書くことができる
下記の二つのコードは同じ意味
#if文 if page_title.empty? base_title else base_title : page_title end #三項演算子 page_title.empty? ? base_title : page_title + " | " + base_title end
empty? メソッドとは
文字列が空 (つまり長さ 0) の時、真を返します 今回はpage_titleに文字列が入らない場合、base_title = 掲示板が出力される
"hello".empty? #=> false " ".empty? #=> false "".empty? #=> true
参考にしたサイト
初アウトプット
初アウトプット
初めてのアウトプットになるので暖かい目で見ただければ幸いです。 コメント機能を実装したく、アソシエーションのどこから手をつけていいのか分からなかったので、アウトプットして理解を深めていこうと思います。
アソシエーションとは
モデル間の(主従関係)を管理する機能で、定義しておくことでモデルをまたいだデータのやり取りを簡単に行うことができる。
1.アソシエーションを定義する
モデルクラスにhas_many , belongs_toを定義
UserとBoardの関係が一対Nの場合
Userモデルに下記のコードを記述 has_many:boards,dependent::destroy
Boardモデルにはbelongs_to :user
と記述
dependent: :destroy
は
親要素が消えたときに 子要素も消してくれるオプション
これを書くと親要素を消したときに
子要素も一緒に消してくれて、
エラーが起こることを防いでくれる。
has_many
は複数形、belongs_to
は単数系でモデル名を書く。
2.アソシエーションを実装する
アソシエーション未使用
user = User.find(1) Board.where(user_id: user.id)
アソシエーション使用時
user = User.find(1) user.tweets
ここではusersテーブルのidが「1」のユーザーが保有している , 掲示板(board)を「全て」取得するという記述になっている。
参考にしたサイト
【初心者向け】丁寧すぎるRails『アソシエーション』チュートリアル【幾ら何でも】【完璧にわかる】🎸 - Qiita