2012-07-23 6 views
7

मुझे पता है कि ruby-on-rails में content_tag फ़ंक्शन का उपयोग करने का एक विकल्प है, जो एक HTML टैग उत्पन्न करने में मदद करता है। मेरे साथ काम करने वाली कंपनी में कुछ रेल डेवलपर्स ने मुझे बताया कि यह "सुविधाजनक और उचित" तरीका है और मुझे उदाहरण के लिए div उत्पन्न करने के लिए "मूल" HTML नहीं लिखना चाहिए ... क्या यह सच है? क्या यह रेल प्रकार का मानक है? क्या इसका प्रदर्शन मुद्दों के साथ कुछ करने या गति प्रदान करने के लिए कुछ है?मुझे "नियमित" एचटीएमएल के बजाय content_tag का उपयोग क्यों करना चाहिए?

मैं अपने पिछले कोड के लिए कोड संलग्न:

<div class="alert alert-<%= key %>"><%= value %></div> 

और रेल समारोह उपयोग

<%= content_tag(:div, value, class: "alert alert-#{key}") %> 

मेरे लिए पहले दिखता है, बहुत समझ में आता है और सहज ज्ञान युक्त - दूसरे कोड की तुलना में अधिक .. आप इसके बारे में क्या सोचते हैं?

उत्तर

8

content_tag का उपयोग करने में सक्षम होने पर आप प्रोग्रामिंग रूप से रूबी कोड के अंदर HTML उत्पन्न कर रहे हैं, उदाहरण: हेल्पर्स और प्रेजेंटर्स।

मेरी राय में, मैं आम तौर पर लेआउट और प्रोजेक्ट के टेम्पलेट्स में content_tags का उपयोग नहीं करता - मुझे नहीं लगता कि यह पठनीयता को कोडिंग में मदद करता है। मुझे यहां उत्पादकता या प्रदर्शन के लिए कोई लाभ नहीं दिख रहा है।

हाउवर: सलाह का शब्द: यदि आपकी टीम ने मानकीकृत किया है - टीम के साथ जाएं।

+0

चीजों को स्पष्ट करने के लिए धन्यवाद .., मुझे पता है कि मानकों की बात करते समय मुझे अपनी (अस्थायी) टीम के साथ जाना चाहिए। मैं सिर्फ यह जानना चाहता था कि मुझे इस सहायक के बारे में स्पष्टीकरण मिल गया है या यह मानक और आदतों का मामला है ... – benams

1

यह आपके लिए HTML पीढ़ी को सरल बनाने का प्रयास करने का एक सहायक तरीका है। आप जो भी उपयोग करना चाहते हैं उसमें आप पास करते हैं और यह इसके लिए HTML को थकाता है। यह मूल रूप से आपके लिए बनाता है, हालांकि मैं उनका कभी भी उपयोग नहीं करता, मैं अपना खुद का लिखना चाहता हूं क्योंकि जब तक सहायक विधि कॉल टाइप करना पड़ता है :) @ जेसे अच्छा कॉल, अगर आपकी टीम इसका उपयोग कर रही है, तो छड़ी सम्मेलन के साथ

1

परियोजना और रेल मानकों के अतिरिक्त, सुरक्षा एक और कारण है कि किसी को content_tag का उपयोग क्यों करना चाहिए।

दो त्वरित कारण है कि मुझे लगता है content_tag रेल के बेहतर

  1. देखें फ़ाइल है एंबेडेड रूबी (अर्थ) एचटीएमएल Ruby.Hence से उत्पन्न पेज में है, content_tag तरह सहायक विधि के लिए आप की मदद करने का उद्देश्य में कार्य करता ईआरबी से एचटीएमएल उत्पन्न करें।

  2. जब एचटीएमएल (मूल शैली) के साथ सीधे हार्डकोड किया जाता है, तो यह क्रॉस साइट स्क्रिप्टिंग हमले (एक्सएसएस) के लिए प्रवण होता है।

संबंधित मुद्दे