link_to image_tag与内部文本或rails中的html

use*_*non 42 ruby-on-rails hyperlink

我想用Ruby on Rails link_toimage_tag方法输出以下内容:

<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>
Run Code Online (Sandbox Code Playgroud)

在Rails中有什么好方法?

Kev*_*tre 87

您可以使用块作为正确用法的字符串插值的替代方法html_safe.例如:

<%= link_to '#' do %>
  Lorem Ipsum <%= image_tag('/images/menu-arrow-down.gif') %>
<% end %>
Run Code Online (Sandbox Code Playgroud)


小智 35

或者更短的方式

<%= link_to image_tag('image/someimage.png') + "Some text", some_path %>
Run Code Online (Sandbox Code Playgroud)


cor*_*ded 34

为什么不直接使用链接和图片标签?

<%= link_to "hiii #{image_tag(yourimagepath)}", "link_path" %>
Run Code Online (Sandbox Code Playgroud)

您也可以尝试上面的(string + image_tag)执行追加,但如果其中一个成为,则会抛出错误nil.使用插值,只显示空白图像(或字符串)nil.

对于Rails 3,您需要使用html_safe:

<%= link_to "hiii #{image_tag(yourimagepath)}".html_safe, "link_path" %>
Run Code Online (Sandbox Code Playgroud)

  • 这将逃避Rails 3中的'img'标记,因此不起作用. (20认同)
  • 这在Rails 3中不起作用,@ Fazley下面的答案有效.由于资产管道,也不需要在路径中使用images /. (2认同)