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.
精彩评论