【Rails】カスタムヘルパーについて_Railsチュートリアル 4章より

Rails tutorialの第4章を終えました。
その時の気づいたこととか備忘録です。
4章ではRuby風味のRails
つまりのところ、Rubyが用意しているメソッドなどを使って
単純にページ出力だけではなく、文字列操作とかもできますよー。
今回はカスタムヘルパーについて

railstutorial.jp

0.準備として

本番リリース以外は
基本的にはマスターブランチはいじらずに
トピックブランチを作るなど
別ブランチで作業をします。
$ git checkout -b rails-flavored-ruby

1.カスタムヘルパー

RailsはViewにプロジェクト単位で新たに加えることもできます。
このviewに新しく加えるメソッドをRailsではカスタムヘルパーと呼びます

例えばtitleタグを付与するために全てのviewに<% provide(:title, "Home") %>を記載するのは面倒であり、抜けがあるかもしれないです。
<%= yield(:title) %> | rootpageとしていた場合
<% provide(:title) %>がないviewページがあった場合に
titleタグは| rootpageになります。

これでもいい場合やバグとして取り除く場合はいいですが、一応みため綺麗にしたい場合に
先頭の”|”が邪魔になる。これを消すかviewに|を消してあげるなどの処理が必要になりそうです。

カスタムヘルパー作成

例えばapp/helper/application_helper.rb<% provide(:title) %>が空白を考慮した
タイトル文を決めるカスタムヘルパーを定義して、application.html.erbで呼び出せば解決できそうです。

application.html.erb

  <title>
    <%= full_title(yield(:title)) %>
  </title>

app/helper/application_helper.rb

module ApplicationHelper
  # ページごとの完全なタイトルを返します。
  def full_title(page_title = '')
    base_title = "Ruby on Rails Tutorial Sample App"
    # 空白の場合`|`なし。それ以外の場合`|`つける
    if page_title.empty?
      base_title
    else
      page_title + " | " + base_title
    end
  end
end

helperについて

本来、メソッドやらcssやらを別ファイルで作成した場合includeする必要がありますが railsでは /sample_app/app/helpers/application_helper.rb 内で書いたヘルパーは、自動的に全てのビューで読み込まれます。

続きはこちら

【Rails】文字列_配列_ハッシュの操作について_Railsチュートリアル 4章より - On_The_Backs_Of_The_Flyer

参照

blog.livedoor.jp

wealthlabo.com

記事を作成する際の大いに参考になりました。ありがとうございます。