rails viewレイヤの具体的な詳細(5)

2801 ワード

変換元:http://ihower.tw/rails3/actionview.html
RailsではHelperはTemplateで使用できる補助方法を指し、主な用途は資料を出力用のHTML文字列に変換することであり、例えばRails内に構築されたlink_toの方法を使用しており、文字列を超連結にすることができる.Railsには多くのHelperメソッドが組み込まれており、HTMLの構築を容易にすることができます.1章では、その中でよく使われるいくつかの方法を紹介します.
もう一つのHelperを使用する理由は、Templateの複雑な構造を簡略化し、Templateの複雑なプログラムをHelperで包装することであり、単純な変数と最も簡単な条件論理とループだけを含むことが望ましい.これにより、プログラムのできないウェブデザイナーでも、スイート版を簡単に理解したり、Templateテンプレートを修正したりすることができる.
HelperプリセットはTemplateでしか使用できないため、rails consoleで呼び出すにはhelper、例えばhelper.link_toを追加する必要があります.また,機会は少ないが,Rails ControllerやModelプログラムでHelperを呼び出す場合は,ApplicationController.helpers前置詞を加えることができる.
静的アーカイブ支援方法
Railsに組み込まれた静的アーカイブ(Assets)支援手法を使用すると、いくつかのメリットがあります.
RailsはStylesheetとJavasSriptファイルを統合し、ブラウザのダウンロードを加速させることができます.
RailsはSassやCoffeeScriptなどAssets template engineを介して生成されたStylesheetやJavasSript をコンパイルします.
Railsは静的アーカイブサイトに時間シーケンス番号を付け、内容が変更された場合に再生成します.このような利点は、ブラウザが古いバージョンをすぐに取得する問題ではなく、ユーザーのブラウザに必ず最新のバージョンにダウンロードするように強制することです.
Assets hostホストのアドレスを変更する場合、例えばCDNをアップする場合、一度にできます.Helpersを通じて、RailsはすべてのAssetsに静的アーカイブサーバーのウェブサイトを追加することができます.
いくつかの一般的な方法:
javascript_include_tag
stylesheet_link_tag
image_tag
video_tag
audio_tag
補助メソッドのフォーマット
simple_format
改行文字をHTMLの<br>ラベルに変更
truncate
前のn文字を取り込む
sanitize
ホワイトリスト
プリセットで許可されているHTMLタグと属性は次のとおりです.
ActionView::Base.sanitized_allowed_tag​​s
=> #<Set: {"strong", "em", "b", "i", "p", "code", "pre", "tt", "samp", "kbd", "var" , "sub", "sup", "dfn", "cite", "big", "small", "address", "hr", "br", "div", "span", "h1", " h2", "h3", "h4", "h5", "h6", "ul", "ol", "li", "dl", "dt", "dd", "abbr", "acronym" , "a", "img", "blockquote", "del", "ins"}>
ActionView::Base.sanitized_allowed_attributes
=> #<Set: {"href", "src", "width", "height", "alt", "cite", "datetime", "title", "class", "name", "xml: lang", "abbr"}>

追加が必要な場合は、config/application.rbに追加できます.たとえば、次のようになります.
config.action_view.sanitized_allowed_tag​​s = %w[table tr td]
config.action_view.sanitized_allowed_attributes = "rel"

strip_tags
HTMLタグの削除
strip_links
HTMLハイパーリンクラベルの削除