Can I use a link_to to generate a link with a span inside? Can I use a link_to to generate a link with a span inside? ruby-on-rails ruby-on-rails

Can I use a link_to to generate a link with a span inside?


You can use the block form of link_to for that:

<%= link_to "#", :class => "button small-button green-button" do %>  Log in  <span class="button-right"></span><% end %>


The simplest way to do it is by using html_safe or raw functions

<%= link_to 'Log In<span class="button-right"></span>'.html_safe %>

or using raw function (recommended)

<%= link_to raw('Log In<span class="button-right"></span>') %>

Simple as it can get !!

Don’t use html_safe method unless you’re sure your string isn’t nil. Instead use the raw() method, which wont raise an exception on nil.


Your snippet looks like a static link, that will never change when interpreted by Rails; I suppose its save to insert the raw HTML in your view.

However:

<%= link_to("#", :class=>"button small-button green-button") do %>  Log in  <span class="button-right"></span><% end %>

Reference.