रेल्स: नए टैब में लिंक खोलें ('link_to' के साथ)


139

मेरे पास यह कोड है:

<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook", :target => "_blank"),                 
            "http://www.facebook.com/mypage" %>

जब कोई उपयोगकर्ता लिंक पर क्लिक करता है तो मैं इसे एक नए टैब में कैसे खोल सकता हूं?

जवाबों:


269

target: :_blank पैरामीटर का एक पैरामीटर होना चाहिए link_to, जबकि आप इसे में डाल image_tagमानकों। अपना कोड इस तरह संशोधित करें:

<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>

या एक ब्लॉक के साथ:

<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
  <%= image_tag("facebook.png", class: :facebook_icon, alt: "Facebook") %>     
<% end %>  


8

तुम भी उपयोग कर सकते हैं target: :_blankके बजायtarget: '_blank'

<%= link_to image_tag("facebook.png", class: "facebook_icon", alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>

link_to do

<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
  <%= image_tag "facebook.png", class: "facebook_icon", alt: "Facebook" %>
<% end %>

3

यदि आप HTML के भीतर एक नए टैब में लिंक खोलने का तरीका खोज रहे हैं (Google से कोई भी व्यक्ति यहां आया है), यहां:

<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>

8
मैं आपको नीचा दिखाने वाला नहीं हूं, लेकिन यह पृष्ठ विशेष रूप से रूबी के लिंक_तो (शीर्षक से) के बारे में है।
हर्ब मीहान

1
@ हेरम्बेहन मुझे यकीन नहीं है कि क्या उखाड़ना है, लेकिन target: :_blankइसका मतलब क्या है यह समझाने में उपयोगी है।
एंड्रयू ग्रिम

1

मेरी समझ यह है: आप ब्राउज़र को एक नया टैब या एक नई साइट खोलने के लिए कह सकते हैं। लेकिन यह उपयोगकर्ता सेटिंग्स पर निर्भर करता है। मैं इस प्रश्न का उत्तर देता हूं।

सिवाय मैं एक जाल में गिर गया जब HTML विकल्पों से लिंक विकल्पों को अलग करना आवश्यक है:

link_to(name = nil, options = nil, html_options = nil, &block)

उदाहरण:

link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })

आपके उत्तर के लिए धन्यवाद, मुझे डिबगिंग और परीक्षण के 2 घंटे बचाए गए
कार्लोस जे गार्सिया जूल

1

पिछले उत्तर पर जोड़ने के लिए नीचे प्रारूप है जो रूबोकॉप द्वारा सुझाया जा रहा है। यह एक सुरक्षा जोखिम हो सकता है क्योंकि लोड किए गए पृष्ठ का पिछले पृष्ठ पर नियंत्रण होगा और फ़िशिंग उद्देश्यों के लिए अपना स्थान बदल सकता है।

इसे रोकने के लिए कोड में 'rel' विशेषता को जोड़ना होगा।

rel: 'noopener'

अब link_to होना चाहिए:

<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank, rel: 'noopener %>

रूबोक डॉक्स

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