将link_to与嵌入式HTML一起使用

Van*_*orz 97 ruby-on-rails twitter-bootstrap

我正在使用Twitter的Bootstrap,我有以下HTML:

<a class="btn" href="<%= user_path(@user) %>"><i class="icon-ok icon-white"></i> Do it@</a>
Run Code Online (Sandbox Code Playgroud)

在Rails中执行此操作的最佳方法是什么?我想用,<%= link_to 'Do it', user_path(@user) %>但是让<i class="icon-ok icon-white"></i>我失望了吗?

Ver*_*cus 254

两种方式.或者:

<%= link_to user_path(@user) do %>
  <i class="icon-ok icon-white"></i> Do it@
<% end %>
Run Code Online (Sandbox Code Playgroud)

要么:

<%= link_to '<i class="icon-ok icon-white"></i> Do it@'.html_safe, user_path(@user) %>
Run Code Online (Sandbox Code Playgroud)

  • 也许在第二个例子中的图标字符串之后缺少'.html_safe'? (2认同)

Eri*_*kas 16

我最近也有同样的需求.试试这个:

<%= link_to '<i class="icon-ok icon-white"></i> Do it'.html_safe, user_path(@user) %>


Ren*_*uki 11

您还可以创建一个如下所示的辅助方法:

def link_fa_to(icon_name, text, link)
  link_to content_tag(:i, text, :class => "fa fa-#{icon_name}"), link
end
Run Code Online (Sandbox Code Playgroud)

根据您的需求调整课程.


Jus*_*ick 8

如果你想在一个使用来自twitter bootstrap的相同图标类的rails中的链接,你需要做的就是这样.

<%= link_to "Do it@", user_path(@user), :class => "btn icon-ok icon-white" %>
Run Code Online (Sandbox Code Playgroud)

  • @PeterNixey不,它没有,它使它看起来像一个按钮.如果你离开`btn`类,你看到的只是图标.按钮外观并不意味着它是一个按钮. (2认同)

eve*_*ans 6

在gem twitter-bootstrap-rail中:他们创建了一个辅助字形

  def glyph(*names)
    content_tag :i, nil, :class => names.map{|name| "icon-#{name.to_s.gsub('_','-')}" }
  end
Run Code Online (Sandbox Code Playgroud)

所以你可以像下面这样使用它:glyph(:twitter) 你的链接帮助器看起来像:link_to glyph(:twitter), user_path(@user)


dda*_*son 6

使用HAML:

= link_to model_path do
  %img{src: '/assets/someimg.png'}
Run Code Online (Sandbox Code Playgroud)


小智 6

在普通的 HTML 中,我们这样做,

<a href="register.html"><i class="fa fa-user-plus"></i> Register</a>
Run Code Online (Sandbox Code Playgroud)

在 Ruby On Rails 中:

<%= link_to routeName_path do %>
  <i class="fa fa-user-plus"></i> Link Name
<% end %>

<%= link_to register_path do %>
   <i class="fa fa-user-plus"></i> Register
<% end %>
Run Code Online (Sandbox Code Playgroud)

这是我的输出