我可以使用link_to生成内部跨度的链接吗?

时间:2011-01-29 16:02:04

标签: ruby-on-rails hyperlink href link-to

我基本上试图得到这个结果:

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

但是我不知道怎么用rails 3中的link_to来做这个?

5 个答案:

答案 0 :(得分:44)

您可以使用link_to的阻止形式:

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

答案 1 :(得分:4)

最简单的方法是使用 html_safe 原始功能

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

或使用原始功能(推荐)

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

简单,因为它可以得到!!

除非您确定字符串不是nil,否则请勿使用 html_safe 方法。而是使用raw()方法,它不会在nil上引发异常。

答案 2 :(得分:3)

您的代码段看起来像一个静态链接,在Rails解释时永远不会改变;我想将其保存为在您的视图中插入原始HTML。

然而:

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

Reference

答案 3 :(得分:3)

以下对我有用。我不知道为什么其他代码片段没有(不同的ruby版本?)。

<%= link_to content_tag(:span, 'Register'), {:action => "register"}, :class=>"button" %>

答案 4 :(得分:1)

要添加杰里米的答案 - 换个路径,就像这样:

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