在Ruby on Rails 3中使用Twitter Bootstrap图标作为链接的最佳方式?

kib*_*ekr 5 css icons ruby-on-rails ruby-on-rails-3 twitter-bootstrap

使用Twitter Bootstrap提供的图标作为Rails 3中的链接的最佳方法是什么?

目前,我正在使用它像粘贴的代码段,但当我使用平板电脑查看网页时,图标不会显示.我确信有更好的方法可以将Twitter Bootstrap Icons用作Rails 3上的链接.

<%= link_to(vote_against_mission_mission_path(:id => mission.id), :method => :post) do %> 

  <i class="icon-chevron-down blank-vote enlarge"></i>

<% end %><br />

<%= link_to(collect_mission_path(controller: "folders", action: "collect", id: mission.id)) do %>

    <i class="icon-heart blank-favorite enlarge" id="actions-centering"></i>
Run Code Online (Sandbox Code Playgroud)

jig*_*fox 8

如果您构建这样的帮助器:

module BootstrapIconHelper
  def icon_link_to(path, opts = {}, link_opts = {})
    classes = []
    [:icon, :blank].each do |klass|
      if k = opts.delete(klass)
        classes << "#{klass}-#{k}"
      end
    end
    classes << "enlarge" if opts.delete(:enlarge)
    opts[:class] ||= ""
    opts[:class] << " " << classes.join(" ")
    link_to content_tag(:i, "", opts), path, link_opts
  end
end
Run Code Online (Sandbox Code Playgroud)

你可以写这样的链接:

  <%= icon_link_to(
        vote_against_mission_mission_path(:id => mission.id),
        { :icon => "chevron-down", :blank => "vote", :enlarge => true },
        {:method => :post}
      ) %>
  <%= icon_link_to(
        collect_mission_path(controller: "folders", action: "collect", id: mission.id),
        { :icon => "heart", :blank => "favorite", :enlarge => true, id: "action-centering}
      ) %>
Run Code Online (Sandbox Code Playgroud)


ric*_*ock 7

除非我误解了你所追求的东西,否则就不那么严格了:

<%= link_to('', vote_against_mission_mission_path(:id => mission.id), :class => "chevron-down") %> 
Run Code Online (Sandbox Code Playgroud)

  • 另见http://stackoverflow.com/questions/9401942/using-link-to-with-embedded-html (3认同)