タイトルを動的に表示する

 

カスタムヘルパーを使い、動的にタイトルを表示する。

今回実装したいこと

下の写真のようにタイトルを表示したい f:id:Mekun:20210623124335p:plain

今回つまづいたところ

  • カスタムヘルパーの定義
  • 三項演算子とは?
  • 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


参考にしたサイト

docs.ruby-lang.org

study-diary.hatenadiary.jp

初アウトプット

初アウトプット

初めてのアウトプットになるので暖かい目で見ただければ幸いです。 コメント機能を実装したく、アソシエーションのどこから手をつけていいのか分からなかったので、アウトプットして理解を深めていこうと思います。

アソシエーションとは

モデル間の(主従関係)を管理する機能で、定義しておくことでモデルをまたいだデータのやり取りを簡単に行うことができる。

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