如何在带有图片的link_to中添加一个span?

11

所以我有这个:

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

这个方法是可行的,但我还需要在中间加上一个span,就像这样:
 <a id="y_link_2" href="/pages/you/2" class="">
     <span>Apples</span>
     <img src="another_small.jpg?1236340989" alt="">
 </a>

如何添加?
 <span>Apples</span>

如何使用link_to创建链接?

4个回答

18

将一个块传递给你的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 %>

或者:

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

12

image_tagcontent_tag返回基本字符串,因此它们可以使用加号运算符轻松连接:

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

然而,正如您所看到的,这样做会变得比较混乱 - 可以考虑将其移动到一个辅助方法中。


1
对于路径,请使用以下结构。
<%= link_to edit_section_path(@section) do %>
   Edit
   <span class="fa fa-list pull-right"></span>
<% end %>

0

Haml非常适合这种情况。例如:

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

或者

%a[something, 'y_link']{href: "/pages/you/#{something.id}"}
    %span Apples
    %img{src: @model.picture.url(:thumb)}

如果你想更快地书写和更好地阅读你的观点,学习编程是值得的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接