Rails tutorialの第4章を終えました。
その時の気づいたこととか備忘録です。
4章ではRuby風味のRails
つまりのところ、Rubyが用意しているメソッドなどを使って
単純にページ出力だけではなく、文字列操作とかもできますよー。
今回はカスタムヘルパーについて
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
参照
記事を作成する際の大いに参考になりました。ありがとうございます。