将link_to与嵌入式HTML一起使用

时间:2012-02-22 19:53:28

标签: 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>

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

12 个答案:

答案 0 :(得分:248)

两种方式。之一:

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

或者:

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

答案 1 :(得分:16)

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

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

答案 2 :(得分:9)

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

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

根据您的需要调整课程。

答案 3 :(得分:8)

如果你想在rails bootstrap中使用相同图标类的rails中的链接,你需要做的就是这样。

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

答案 4 :(得分:6)

在gem twitter-bootstrap-rail中:他们创建了一个帮助符号

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

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

答案 5 :(得分:6)

使用HAML:

= link_to model_path do
  %img{src: '/assets/someimg.png'}

答案 6 :(得分:2)

我会给你一个机会,因为你还没有接受答案 而其他答案并不是你想要的100% 这是以Rails方式实现的方法。

<%= link_to(user_path(@user), :class => 'btn') do %>
  <i class="icon-ok icon-white"> </i> Do it!
<% end %>

编辑:留下我的答案以备将来参考,
但是当@ justin-herrick有正确答案时 使用Twitter Bootstrap。

答案 7 :(得分:2)

如果您在应用程序中频繁使用它,我认为您可以通过辅助方法简化它。

把它放在helper / application_helper.rb

def show_link(link_text, link_source)
  link_to("#{content_tag :i, nil, class: 'icon-ok icon-white'} #{link_text}".html_safe,
    link_source, class: "btn")
end

然后从您的视图文件中调用它,就像link_to

一样
<%= show_link "Do it", user_path(@user) %>

答案 8 :(得分:1)

如果您使用的是bootstrap 3.2.0,则可以在app/helpers/application_helper.rb

中使用此帮助程序
module ApplicationHelper
  def glyph(*names)
    content_tag :i, nil, :class => names.map{|name| "glyphicon glyphicon-#{name.to_s.gsub('_','-')}" }
  end
end

然后,在你的观点中:

link_to glyph(:pencil) + ' Edit', edit_post_path(@post), class: 'btn btn-warning'

答案 9 :(得分:1)

def show_link (source, text)
  link_to source, {'data-original-title' => 'Show', 'data-toggle' => 'tooltip', :class => 'btn btn-xs btn-success'} do
    "#{text} #{content_tag :i, nil, class:' glyphicon glyphicon-eye-open' }".html_safe
    end
end

答案 10 :(得分:1)

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

<a href="register.html"><i class="fa fa-user-plus"></i> Register</a>

在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 %>

This is My Output

答案 11 :(得分:0)

Helper基于Titas Milan的建议,但使用了一个块:

def show_link(link_text, link_source)
  link_to link_source, { class: 'btn' } do
    "#{content_tag :i, nil, class: 'icon-ok icon-white'} #{link_text}".html_safe
  end
end