5

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

5 に答える 5

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

次のようにリンクを記述できます。

  <%= 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}
      ) %>
于 2012-05-26T10:05:21.700 に答える
7

私があなたの求めているものを誤解していない限り、あまり厳密ではありません:

<%= link_to('', vote_against_mission_mission_path(:id => mission.id), :class => "chevron-down") %> 
于 2012-06-15T18:03:47.173 に答える
4

このヘルパーを作成する必要があります。

module BootstrapHelper
  def icon(*names)
    content_tag(:i, nil, :class => icon_classes(names))
  end

  private
  def icon_classes(*names)
    names.map{ |name| "icon-#{name}" }
  end
end

そして、次のように使用します:

link_to icon(:trash, :white), user_path(@user), method: :delete
于 2013-03-28T22:42:49.153 に答える
2

上記のソリューションはこれを返します:

<i class="icon-[:remove, :white]"></i>

私は何かを変えました、そして今私のために働いています:

module BootstrapHelper
  def icon(*names)
    content_tag(:i, nil, :class => icon_classes(names))
  end

  private
  def icon_classes(*names)
    final = ""
    names[0].each do |n|
      final = final + "icon-" + n.to_s + " "
    end
    return final
  end
end

今それを返します:

<i class="icon-remove icon-white "></i>

使用方法は同じです:

<%= link_to icon(:remove, :white), doc, :confirm => 'Are you sure?', :method => :delete %>
于 2013-04-10T22:57:25.573 に答える