我想使用Ruby on Rails link_to
和image_tag
方法输出以下内容:
<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>
在Rails中有什么好方法?
答案 0 :(得分:85)
您可以使用块作为字符串插值的替代方法,并使用正确的用法html_safe
。例如:
<%= link_to '#' do %>
Lorem Ipsum <%= image_tag('/images/menu-arrow-down.gif') %>
<% end %>
答案 1 :(得分:34)
或者更短的方式是
<%= link_to image_tag('image/someimage.png') + "Some text", some_path %>
答案 2 :(得分:33)
为什么不使用链接和图片标记?
<%= 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" %>
答案 3 :(得分:4)
link_to(image_tag("image.png", :alt => "alt text", :class =>"anyclass"), image_url)
答案 4 :(得分:3)
我似乎无法弄清楚如何在@ 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 时返回字符串。
答案 5 :(得分:2)
我更喜欢HAML中的这种方法
= link_to root_path do
= image_tag "ic_launcher.png", size: "16x16"
Home
答案 6 :(得分:1)
这是一种很酷的方式,可以使用link_to来包含图像,还可以使用带文本的mailto href(显示在图像旁边):
<%= link_to image_tag("image.png") + " some@email.com",
href: "mailto:some@email.com" %>
在你的视图中给你这样的东西(整个图像和文字成为mailto href):
答案 7 :(得分:1)
对我来说,这很好:
<%= link_to(image_tag(<URL>,style),<URL>) %>
答案 8 :(得分:0)
我发现这也有效。
link_to(image_tag("/images/linkd.png",:alt=>"twt"){},:href=>"some_url",:target=>"_blank")