开发者

How do I add a span in a link_to with an image

开发者 https://www.devze.com 2023-02-04 12:29 出处:网络
So I have this: <%= link_to(image_tag(@model.picture.url(:thumb), :alt => \'\'), \"/pages/you/#{something.id}\", {:id => \"y_link_#{something.id}\"}) %>

So I have this:

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

Which works, but I need a span in between also like this:

 <a id="y_link_2" hr开发者_运维问答ef="/pages/you/2" class="">
     <span>Apples</span>
     <img src="another_small.jpg?1236340989" alt="">
 </a>

How do I add

 <span>Apples</span>

to the link_to?


Feed a block to your link_to call:

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

Alternatively:

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


image_tag and content_tag return basic strings, so they can be concatenated using the + operator easily:

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

However, as you can see, it gets quite messy - might be worth moving it into a helper method.


For a path, use the structure like so

<%= link_to edit_section_path(@section) do %>
   Edit
   <span class="fa fa-list pull-right"></span>
<% end %>


Haml lends itself well to situations like these. For example:

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

Alternatively:

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

It's worth learning if you want to write your views faster and read them better.

0

精彩评论

暂无评论...
验证码 换一张
取 消