将link_to与embedded式HTML一起使用

我正在使用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> <%= link_to 'Do it', user_path(@user) %> <i class="icon-ok icon-white"></i>扔掉吗?

两种方式。 或者:

 <%= 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) %> 

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

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

如果你想在轨道使用twitter引导相同的图标类的链接,所有你需要做的是这样的。

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

在gem twitter-bootstrap-rail中:他们创build了一个helper字形

  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)

你也可以创build一个像下面这样的帮助方法:

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

根据您的需要调整类。

使用HAML:

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

我想如果你在应用程序中经常使用它,你可以通过一个辅助方法来简化它。

把它放在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) %> 

因为你还没有接受答案,所以我会给你一个机会
和其他答案不是100%你正在寻找。
这是Rails的方式。

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

编辑:留下我的答案供将来参考,
但@贾斯汀赫里克有正确的答案时
使用Twitter Bootstrap。

如果你使用的是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' 

帮手基于蒂塔斯米兰的build议,但使用块:

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