ActionView::Helpers::AssetTagHelper
def image_tag(source, options = {})

説明

<img> を作ります。

引数

値を変えると、ERB と HTML が変わります。

src 属性の値にします。渡す値によって、次のように変わります。
  • URL(https:// のような 〜://、//、data:、cid: で始まる文字列):そのまま src 属性の値にします。
  • / で始まる文字列("/photo.png"):そのまま src 属性の値にします。
  • それ以外の文字列("logo.png"):アセット(app/assets の中のファイル)を探し、ファイル名にハッシュを付けたパスにします。見つからなければ、Propshaft::MissingAssetError になります。探してハッシュを付けるのは Propshaft の動きで、アセットの仕組みを入れていないアプリでは、探さずに /images/ を前に付けたパスにします。拡張子は省けません。
  • 文字列でも Symbol でもないもの(モデルのオブジェクトなど):polymorphic_url で URL にします。
options= {}
"16x10"
"16x10" のように x でつないだ値を渡すと、width 属性と height 属性に分けて追加します。数だけ(16)を渡すと、両方を同じ値にします。どちらの形でもなければ、何も追加しません。width か height も渡すと、ArgumentError になります。
"32"
渡した値を width 属性の値にします。size も渡すと、ArgumentError になります。
{"logo.png": "1x", "logo@2x.png": "2x"}
Hash か配列を渡すと、パスと幅や倍率(1x や 100w)の組をカンマでつないで、srcset 属性の値にします。パスは、引数の source と同じように作ります。文字列を渡すと、そのまま使います。
true にすると、アセットを探さず、/images/ を前に付けたパスにします。
"lazy"
渡した値を loading 属性の値にします。デフォルトは config.action_view.image_loading の値です。このサイトは nil なので、追加しません。設定に値があるときは、nil や false を渡しても、設定の値になります。
"async"
渡した値を decoding 属性の値にします。デフォルトは config.action_view.image_decoding の値です。このサイトは nil なので、追加しません。
"other.png"
渡しても使いません。src 属性の値は、いつも引数の source から作ります。
ヘルパー共通の options

Rails はどのヘルパーでも、これらの options を同じように処理します。HTML の仕様で <img> に使えないものや、使う場面が少ないとこのサイトで判断したものは、ここでは省いています。

すべてのヘルパー共通

{active: true, hidden: false}
Hash を渡すと、値が false と nil 以外のキーを空白でつなぎます。配列を渡すと、nil、false、空の文字列(空白だけの文字列も)を外して、空白でつなぎます。
{controller: "tags", tags_suggestions_value: ["ruby", "rails"]}
Hash を渡すと、キーの _ を - にして、data-* 属性を追加します。値に配列や Hash を渡すと、JSON の文字列にします。
{describedby: ["name_help", "name_error"], invalid: false}
:data と同じく、aria-* 属性を追加します。値が配列なら、nil と空の文字列を外して、空白でつなぎます(何も残らなければ、追加しません)。値が Hash なら、値が false と nil 以外のキーを空白でつなぎます。
ここにない options は、<img> の HTML 属性になります。値が nil なら、その HTML 属性は追加しません。

ERB

直前との違い: 追加 削除 変更


          

HTML


          

プレビュー