如何在link_to中添加带图像的范围

Mat*_*iby 10 ruby ruby-on-rails link-to ruby-on-rails-3

所以我有这个:

<%= link_to(image_tag(@model.picture.url(:thumb), :alt => ''), "/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) %>
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我需要介于两者之间,如下所示:

 <a id="y_link_2" href="/pages/you/2" class="">
     <span>Apples</span>
     <img src="another_small.jpg?1236340989" alt="">
 </a>
Run Code Online (Sandbox Code Playgroud)

我该如何添加

 <span>Apples</span>
Run Code Online (Sandbox Code Playgroud)

到了link_to

Sha*_*aun 17

将一个块提供给您的link_to调用:

<% link_to("/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) do %>
  <%= content_tag(:span, 'Apples') %>
  <%= image_tag(@model.picture.url(:thumb), :alt => '') %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

或者:

<% link_to("/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) do %>
  <span>Apples</span>
  <%= image_tag(@model.picture.url(:thumb), :alt => '') %>
<% end %>
Run Code Online (Sandbox Code Playgroud)


Dan*_*ail 12

image_tagcontent_tag返回基本字符串,因此可以使用+操作符轻松连接它们:

<%= link_to(content_tag(:span, "Apples") + image_tag(@model.picture.url(:thumb), :alt => ''), "/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) %>

但是,正如您所看到的,它变得非常混乱 - 可能值得将其转换为辅助方法.