2021年9月10日 パーフェクト Ruby on Rails
2-5 ビューテンプレートについて
2-5-1 ヘルパーメソッドの利用
- ヘルパーメソッド ViewをよりシンプルにDRYに書くための、Railsで用意されたモジュール。基本的にはviewをhelpしてくれるもの。自分で作ることもできる。
$ rails routes
コマンドを打つと表示されるPrefix
とVerb
以下に記載されている部分(例えばuserやprofileなど)に_path
や_url
などをviewファイルで付け足す事で、その行きたいviewページまでのurlを簡単に指定することが出来ます。
※ ただしコンソール上で試したい時は先頭にapp.profile_url
というようにします。
一部抜粋
・ url_for
・ link_to
・ form_with
・stylesheet_link_tag
・ javascript_pack_tag
・ time_ago_in_words
・number_with_delimiter
trメソッド
p106 独自ヘルパーメソッドの定義の項目のコード
# app/helpers/application_helper.rb module ApplicationHelper def to_hankaku(str) str.tr("A-Za-z", "A-Za-z") end end
全角英文字を半角に変換するヘルパーメソッドでtrメソッド
について学びました。
今回の場合はtr("A-Za-z", "A-Za-z")
でハイフンの左辺から-
の右辺までを指定しています。A-Zで大文字の範囲指定を行い、a-zで小文字の範囲指定を行なっています。大文字と小文字の間に区切りがなかった事で、初見では戸惑いました。
エスケープ処理
フォーム画面にscriptタグなどを書いても基本的には処理されません。これはRails側で守ってくれているのでやらなくても良い事ですが、意図的にエスケープ処理をしないようにする事もできます。
rawヘルパーメソッド
<%= raw "<script>alert('sample');</script>" %>
MVCについてのまとめ
参照
ヘルパーメソッド
https://qiita.com/Yukaaaah/items/19e524fd0c0e4a3451f1
Ruby 3.0.0 リファレンスマニュアル instance method String#tr
https://docs.ruby-lang.org/ja/latest/method/String/i/tr.html