एम्बेडेड HTML के साथ link_to का उपयोग करना


100

मैं ट्विटर के बूटस्ट्रैप सामान का उपयोग कर रहा हूं और मेरे पास निम्न HTML है:

<a class="btn" href="<%= user_path(@user) %>"><i class="icon-ok icon-white"></i> Do it@</a>

रेल में ऐसा करने का सबसे अच्छा तरीका क्या है? मैं उपयोग करना चाहता हूँ, <%= link_to 'Do it', user_path(@user) %>लेकिन <i class="icon-ok icon-white"></i>मुझे फेंक रहा है?

जवाबों:


260

दो तरीके। कोई एक:

<%= 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
शायद यह <%= link_to ...ब्लॉक के साथ उदाहरण में होना चाहिए ?
वोल्डी

यह निश्चित रूप से होना चाहिए। धन्यवाद!
वेरिटिकस

3
शायद दूसरे उदाहरण में आइकन के लिए स्ट्रिंग के बाद '.html_safe' गायब है?

मुझे नहीं पता था कि आप एक ब्लॉक पास कर सकते हैं link_to- मुझे सिखाने के लिए धन्यवाद!
yas4891

16

मुझे हाल ही में वही जरूरत थी। इसे इस्तेमाल करे:

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


11

आपके पास नीचे की तरह एक सहायक विधि बनाने की संभावना भी है:

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

अपनी आवश्यकताओं के लिए कक्षाओं को अनुकूलित करें।


8

यदि आप रेल में एक लिंक चाहते हैं जो ट्विटर बूटस्ट्रैप से उसी आइकन वर्ग का उपयोग करता है, तो आपको बस कुछ ऐसा करना होगा।

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

2
@PeterNixey नहीं, ऐसा नहीं है, यह एक बटन की तरह दिखता है। यदि आप btnकक्षा से बाहर निकलते हैं , तो आप सभी देखते हैं कि यह आइकन है। बटन देखने का मतलब यह नहीं है कि यह एक बटन है।
१०:४६ पर वेबदेवी

7

HAML का उपयोग करना:

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

6

मणि ट्विटर-बूटस्ट्रैप-रेल में: वे एक सहायक ग्लिफ़ बनाते हैं

  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)


तुम एक टैग के लिए कई मामलों की अनुमति दे सकता है ... सभी मामलों में, जो उपयोग के मामले होंगे?
20

1
यह ग्लिफ़ (फ़ॉन्ट विस्मयकारी) के साथ लिंक बनाने का एक शानदार तरीका है! अधिक कक्षाएं जोड़ने के लिए कुछ का उपयोग करें <%= link_to glyph(:comments), post_path(post), :class => "btn-small btn-warning" %>। यहाँ commentsफ़ॉन्ट विस्मयकारी चरित्र का नाम post_path(post)है, गंतव्य url है और class =>दिखाता है कि ग्लिफ़ किस वर्ग का उपयोग करेगा।
वेस्टन

5

सामान्य HTML में हम करते हैं,

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

रूबी ऑन रेल्स:

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

यह मेरा आउटपुट है


3

मैं इसे एक शॉट दूंगा क्योंकि आपने अभी तक एक उत्तर स्वीकार नहीं किया है
और अन्य उत्तर 100% नहीं हैं जो आप खोज रहे थे।
यह यह करने के लिए रेल रास्ता है।

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

संपादित करें: भविष्य के संदर्भ के लिए मेरा जवाब छोड़ रहा है,
लेकिन
ट्विटर बूटस्ट्रैप के साथ काम करने पर @ जस्टिन-हेरिक का सही उत्तर है ।


2

मुझे लगता है कि यदि आप इसे अपने आवेदन में अक्सर उपयोग करते हैं तो आप इसे एक सहायक विधि के माध्यम से सरल बना सकते हैं।

इसे हेल्पर / 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) %>

2

यदि आप बूटस्ट्रैप 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'

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

0

टाइटस मिलान के सुझाव के आधार पर हेल्पर, लेकिन एक ब्लॉक का उपयोग करते हुए:

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.