2012-03-08 15 views
45

के अंदर हैमल टैग डालें क्या एचएएमएल में एक link_to सहायक में HTML-सामग्री जोड़ना संभव है?लिंक_to सहायक

मैं इस कोशिश की, लेकिन सब मैं प्राप्त एक सिंटैक्स त्रुटि है:

= link_to "Other page", "path/to/page.html" 
    %span.icon Arrow 

उम्मीद उत्पादन:

<a href="path/to/page.html">Other Page<span class="icon">Arrow</span></a> 

उत्तर

104

आप ब्लॉक

= link_to "path/to/page.html" do 
    Other page 
    %span.icon Arrow 
+1

क्या आप जानते हैं कि लिंक के अंत में उस कोड द्वारा बनाई गई अतिरिक्त जगह से मैं कैसे छुटकारा पा सकता हूं? यह ध्यान देने योग्य है जब मैं उस पर होवर करता हूं जब पूरा लिंक रेखांकित होता है। – ayjay

+0

धन्यवाद, यह बहुत उपयोगी है। आपको यह बताने में चूक गई कि यह ध्यान रखना महत्वपूर्ण है कि 'link_to' में 'do' block' का उपयोग करते समय, केवल पैरामीटर पथ है, और लिंक का टेक्स्ट, या कोई अन्य सामग्री ब्लॉक के भीतर जाती है। – unmultimedio

+0

यदि आप [font-awesome-sass gem] (https://github.com/FortAwesome/font-awesome-sass#a-ruby-on-rails) का उपयोग करते हैं, तो आप भी उदाहरण का उपयोग कर सकते हैं। '= span.icon तीर' के बजाय '= आइकन" तीर-दाएं "' जो सहायक विधि का आह्वान करता है। – metakermit

11

का उपयोग किसी को अब भी उपयोग कर रहा है चाहिए एक प्रोजेक्ट पर रेल 2.x, ऐसा लगता है कि स्वीकृत उत्तर ब्लॉक लौटाता है, इस प्रकार मार्कअप में लिंक को डुप्लिकेट करता है । (अनुशंसित) के बजाय =

- link_to "path/to/page.html" do 
    Other page 
    %span.icon Arrow 
5

सबसे आसान तरीका है की - का उपयोग यह करने के लिए html_safe या कच्चे कार्यों

= link_to 'Other Page<span class="icon"></span>'.html_safe, "path/to/page.html" 

या कच्चे समारोह का उपयोग कर का उपयोग करना है

= link_to raw('Other Page<span class="icon"></span>'), "path/to/page.html" 

: बहुत सरल परिवर्तन जितना सरल हो सकता है !!

html_safe विधि का उपयोग न करें जब तक कि आप सुनिश्चित न हों कि आपकी स्ट्रिंग शून्य नहीं है। इसके बजाय कच्चे() विधि का उपयोग करें, जो शून्य पर अपवाद नहीं उठाएगा।