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 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) %>
以下のようなヘルパーメソッドを作成することもできます。
def link_fa_to(icon_name, text, link)
link_to content_tag(:i, text, :class => "fa fa-#{icon_name}"), link
end
クラスをニーズに合わせて調整します。
Railsのリンクが必要な場合は、Twitterの同じアイコンクラスを使用しますbootstrap必要なことは、このようなことだけです。
<%= link_to "Do it@", user_path(@user), :class => "btn icon-ok icon-white" %>
ジェム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)
のようになります。
HAMLの使用:
= link_to model_path do
%img{src: '/assets/someimg.png'}
あなたはまだ答えを受け入れていないので、これを試してみます
そして他の答えはあなたが探していた100%ではありません。
これがRails方法で実行する方法です。
<%= link_to(user_path(@user), :class => 'btn') do %>
<i class="icon-ok icon-white"> </i> Do it!
<% end %>
編集:今後の参考のために私の答えを残し、
しかし、@ justin-herrickが正しい答えを持っているのは
Twitter Bootstrapの使用。
アプリケーションで頻繁に使用する場合は、ヘルパーメソッドを使用して簡略化できると思います。
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) %>
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'
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
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