Ruby on Rails link_to
およびimage_tag
メソッド:
<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>
Railsで良い方法は何でしょうか?
画像タグへのリンクを使用しないのはなぜですか?
<%= link_to "hiii #{image_tag(yourimagepath)}", "link_path" %>
上記の追加(string + image_tag
)、ただし、それらのいずれかがnil
になるとエラーがスローされます。補間を使用すると、nil
の場合、空白の画像(または文字列)が表示されます。
Rails 3の場合、html_safe
:
<%= link_to "hiii #{image_tag(yourimagepath)}".html_safe, "link_path" %>
正しい使用法で文字列補間の代わりにブロックを使用できますhtml_safe
。例えば:
<%= link_to '#' do %>
Lorem Ipsum <%= image_tag('/images/menu-arrow-down.gif') %>
<% end %>
または短い方法です
<%= link_to image_tag('image/someimage.png') + "Some text", some_path %>
link_to(image_tag("image.png", :alt => "alt text", :class =>"anyclass"), image_url)
@corrodedの回答にコメントを追加する方法がわからないようです。ただし、Rails 3を使用している場合、彼の答えは期待どおりに動作しません。これを修正する方法がすぐには明らかではないかもしれません。少なくとも私にとってはそうではありません。 html_safeを追加しますが、間違った場所に配置します。振り返ってみると、それは明らかでしたが、「ルーキー」を間違えた私のような他の人のためにここに含めると思いました。
<%= link_to "hiii #{image_tag(yourimagepath)}".html_safe, "link_path" %>
ただし、「hiii」にユーザー割り当て可能な変数を使用している場合は、最初にサニタイズする必要があります。
<%= link_to (h(my_model.some_string) + image_tag(yourimagepath)).html_safe,
"link_path" %>
h()とimage_tag()がnilを渡すと文字列を返すため、my_model.some_stringまたはyourimagepathがnilであっても問題はありません。
私はHAMLでこのアプローチを好む
= link_to root_path do
= image_tag "ic_launcher.png", size: "16x16"
Home
Link_toを使用して画像を含めるクールな方法と、テキスト付きのmailto href(画像の横に表示)を次に示します。
<%= link_to image_tag("image.png") + " [email protected]",
href: "mailto:[email protected]" %>
ビューに次のようなものを表示します(画像とテキスト全体がmailto hrefになります)。
私もこれが働いたことがわかりました。
link_to(image_tag("/images/linkd.png",:alt=>"twt"){},:href=>"some_url",:target=>"_blank")
私にとってこれはうまくいきました:
<%= link_to(image_tag(<URL>,style),<URL>) %>