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
p106 独自ヘルパーメソッドの定義の項目のコード
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についてのまとめ
- Model層について、ActibeRecordの基本的な操作、バリデーション、コールバック
- Controller層について、ModelとViewを繋ぐこと。リクエストオブジェクトやアクションコールバック、脆弱性への対処。
- View層について、受け取ったModelを表示すること、テンプレートエンジン、ヘルパーメソッド、さまざまフォーマットでの表示
参照
ヘルパーメソッド
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