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

2019-02-05 21:57发布

I am basically trying to get this result:

        <a href="#" class="button small-button green-button">
            Log in
            <span class="button-right"></span>
        </a>

But I don't know how to do this with a link_to in rails 3 ?

5条回答
狗以群分
2楼-- · 2019-02-05 22:20

The following worked for me. I don't know why other pieces of code didn't (different ruby version?).

<%= link_to content_tag(:span, 'Register'), {:action => "register"}, :class=>"button" %>
查看更多
混吃等死
3楼-- · 2019-02-05 22:22

To add to Jeremy's answer - for a path, like so:

          <%= link_to edit_section_path(@section) do %>
              Edit
              <span class="fa fa-list pull-right"></span>
          <% end %>
查看更多
时光不老,我们不散
4楼-- · 2019-02-05 22:32

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.

查看更多
劫难
5楼-- · 2019-02-05 22:33

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.

查看更多
Ridiculous、
6楼-- · 2019-02-05 22:35

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 %>
查看更多
登录 后发表回答