ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。
今回は、Action View ヘルパーの章です。
ベンチマーク
リンクはこちら
viewの中でかかった処理時間を計測できる。 結果はログに出力される。
<% benchmark "Benchmark Test" do %> <%= sleep 3 %> <% end %>
Started GET "/books" for ::1 at ... Benchmark Test (3005.2ms) ... Completed 200 OK
distance-of-time-in-words
リンクはこちら
よく見かけるやつですね。Railsが用意してくれてるんですね。
DebugHelper
リンクはこちら
オブジェクトを見やすく表示してくれます。 試しにActiveRecordの1つのインスタンスを表示してみたら以下の感じでした。 デバッグは処理止めてサーバー内で値の確認などするので、使ったことなかったです。
<%= debug(@books.last) %>
NumberHelper
リンクはこちら
number_to_percentage
四捨五入してくれるみたいですね。
number_to_percentage(99.44, precision: 0) # => 99.4% number_to_percentage(99.45, precision: 0) # => 99.5%
number_to_phone
デフォルトは英語なので、日本の電話番号形式に合わせるならパターンなど上手に設定する必要がありそうです。
また、日本の場合、基本的には0から電話番号が始まりますが、0から始まる数字だとSyntax Errorになったので、文字列にしないといけなさそうです。
number_to_phone(0120123456) #=> ActionView::SyntaxErrorInTemplate number_to_phone('0120123456') #=> 012-012-3456 <%= number_to_phone('0120123456', pattern: /(\d{4})(\d{2})(\d{4})$/) %> #=> 0120-12-3456
SanitizeHelper
リンクはこちら
sanitize_css
css = "background: url(javascript:alert('alert')); font-size: 10px;" sanitize_css(css) #=> "font-size:10px;"
strip_links
リンクのテキストだけ抽出できる。ピンポイントで使うことがあるかもしれません。
以下で、strip_links(books_link)
は「本の一覧へ」という文字列を返します。
<% books_link = capture do %> <%= link_to '本の一覧へ', books_path %> <% end %> <%= strip_links(books_link) %>
strip_tags
HTMLタグを除外する。
以下でstrip_links(books_link)
は「本の一覧へアイウエオ」という文字列を返します。
<% books_link = capture do %> <!-- コメント --> <div><%= link_to '本の一覧へ', books_path %><span>アイウエオ</span></div> <% end %> <%= strip_tags(books_link) %>