【发布时间】:2011-07-20 05:12:10
【问题描述】:
我想使用 Ruby on Rails link_to 和 image_tag 方法输出以下内容:
<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>
Rails 中有什么好的方法?
【问题讨论】:
我想使用 Ruby on Rails link_to 和 image_tag 方法输出以下内容:
<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>
Rails 中有什么好的方法?
【问题讨论】:
您可以使用块作为字符串插值的替代方法,正确使用 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 "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" %>
【讨论】:
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" %>
请注意,my_model.some_string 或 yourimagepath 为 nil 没有问题,因为 h() 和 image_tag() 在传递 nil 时都会返回字符串。
【讨论】:
我更喜欢 HAML 中的这种方法
= link_to root_path do
= image_tag "ic_launcher.png", size: "16x16"
Home
【讨论】:
这是一种很酷的方法,可以使用 link_to 来包含图像,并使用带有 Text 的 mailto href(显示在图像旁边):
<%= link_to image_tag("image.png") + " some@email.com",
href: "mailto:some@email.com" %>
在你的视图中给你这样的东西(整个图像和文本变成了一个 mailto href):
【讨论】:
对我来说这很好用:
<%= link_to(image_tag(<URL>,style),<URL>) %>
【讨论】:
我发现这也有效。
link_to(image_tag("/images/linkd.png",:alt=>"twt"){},:href=>"some_url",:target=>"_blank")
【讨论】: