2010-06-27 8 views
98

रूबी कोड के साथ मिश्रित एचटीएमएल को आप कैसे टिप्पणी करते हैं?रेल में html.erb टेम्पलेट्स में टिप्पणियां ब्लॉक करें

some text <% ... %> more text <%= ... %> 
something else 
<% ... %> 

jsp में यह असली सरल है: <%-- ... --%>, लेकिन मैं रेल में किसी भी संक्षिप्त विकल्प खोजने में असमर्थ हूँ।

सरल एचटीएमएल टिप्पणियां <!-- ... --> काम नहीं करते: रूबी कोड अभी भी निष्पादित है और त्रुटियों को चिल्लाता है।

एचटीएमएल टिप्पणियों के साथ if false का उपयोग करने का एक विकल्प है, लेकिन यह उल्लेखनीय है कि आईडीई इसका समर्थन नहीं करता है।

शुद्ध रूबी से आने वाला एक विकल्प भी है, जो आश्चर्यजनक रूप से काम करता है।

<% 
=begin %> 
... html and ruby code goes here 
<% 
=end %> 

यह आम तौर पर ठीक है सिवाय इसके कि यह वर्बोज़, अजीब दिखने है और गहरे लाल रंग का IDEs मुझे पता है में से कोई भी इसे समर्थन (हां, मैं टिप्पणी करने के लिए/टिप्पणी बाहर एक कीस्ट्रोक के साथ की तरह)।

मुझे उत्सुकता है, क्या रेल में ऐसा करने का कोई 'आधिकारिक' है?

धन्यवाद!

उत्तर

99

मैं एक समाधान के रूप में गिनती नहीं होगा, लेकिन शायद एक

<% if false %> 
    ... 
<% end %> 

या यदि आप एक छोटे से गंदा लग रहा है, एक सहायक है कि बस कुछ भी नहीं आउटपुट बनाने के बीच हिस्सा enclosing।

मुझे इसकी आवश्यकता नहीं है, लेकिन मैं ठोकर खा रहा हूं कि इसके लिए कोई आउट ऑफ़ द बॉक्स समाधान नहीं है।

+20

क्षमा करें, आपको शुरुआती एआरबी टैग <%# %> या <%#= %> – jamesc

1

आपको यह ध्यान में रखना होगा कि कोड कहां निष्पादित किया गया है। रूबी-स्टाइल टिप्पणियां काम करती हैं क्योंकि वेब ब्राउज़र पर सेवा करने से पहले रूबी कोड सर्वर पर निष्पादित किया जाता है। यह भी बताता है कि एचटीएमएल टिप्पणियां — क्यों काम नहीं करतीं रूबी पहले से ही निष्पादित की जा चुकी है।

क्या आईडीई कोड के ब्लॉक को टिप्पणी करने के लिए कस्टम मैक्रोज़ बनाने में सहायता का उपयोग नहीं कर रहा है?

+0

1) आप सही हैं, jsp टिप्पणियों के पास थोड़ा अलग प्रारूप है, मैंने पोस्ट अपडेट किया है। 2) मुझे आईडीईए या नेटबीन्स में ऐसा कुछ नहीं मिल रहा है। क्या आपके पास यह कहने में कोई विशेष आईडीई है? –

+1

नहीं मैंने नहीं किया। व्यक्तिगत रूप से, मैं रेल परियोजनाओं के लिए एक आईडीई का उपयोग नहीं करता हूं। –

136

एकल लाइनों टिप्पणी के लिए इस का उपयोग करें:

<%# your_ruby_code %> 

कई पंक्तियों के लिए,

<% 
=begin %> <% ruby_code %> 
<% 
=end %> 

आप क्या कहा काम करेगा।

+2

मैं जानता हूँ कि यह होगा, मुझे इसमें रुचि हो, तो सरल कुछ भी :) –

+2

= शुरू मुझे लगता है कि शुरू - अंत होगा सब = अंत # आप के रूप में अपनी पूरी तरह से टिप्पणी की मेरी टिप्पणी अनदेखा कर सकते हैं: पी – Garfield

+1

यह नहीं करता है ' टी के अंदर रूबी खुले टैग के साथ मिश्रित काम और एचटीएमएल – Gediminas

6

बाहर टिप्पणी करने के लिए ERB टैग खुलने वाला टैग में = चिह्न से पहले गहरे लाल रंग का टिप्पणी हैश प्रतीक का उपयोग

<p> 
This is some text I want to keep 
<%= @some_object.some_attribute %> 
</p> 
<p> 
    I want to keep this text but comment out the erb tag 
    <%#= @some_object.another_attribute %> 
</p> 
<!-- 
<p> 
    I want all of this text commented out including the erb tag 
    <%#= @some_object.some_attribute %> 
</p> 
--> 
<!-- 
<p> 
I just want this html commented out but I want to keep the erb tag 
<%= @some_object.some_attribute %> 
</p> 
--> 
+0

के लिए # प्रतीक का उपयोग करना चाहिए, जहां तक ​​मैं समझता हूं, वह एक बहुभाषी टिप्पणी आउट समाधान ढूंढ रहा है: यदि मेरे पास एन लाइनों का एक ब्लॉक है, तो मैं बस सक्षम होना चाहता हूं ऊपर और नीचे (या शायद एक जोड़े) पर एक लाइन जोड़ें और यह काम करें। मैं पूरे ब्लॉक को संपादित नहीं करना चाहता हूं। – dionyziz

1

उदात्त पाठ के ब्लॉक टिप्पणी शॉर्टकट Ctrl + Shift +/ नोटिस कि क्या आपके द्वारा चुने गए सामान्य HTML या एक एआरबी टैग और तदनुसार <!--- या <% =begin %> रखता है।

+0

हां, लेकिन यह अभी भी HTML * और * रूबी दोनों पर टिप्पणी नहीं करेगा। – Adamantish

+0

हम्म ... कस्टम प्लगइन के लिए अच्छा कारण लगता है। हो सकता है कि स्टॉपगैप के रूप में, आप ब्लॉक के भीतर प्रत्येक एआरबी टैग '<%' की शुरुआत को बहु-चयन करने के लिए 'ctrl + d' दबा सकते हैं और फिर' ctrl + shift +/'दबाएं, फिर पूरे ब्लॉक के लिए इसे एक बार फिर दबाएं एचटीएमएल टिप्पणी करें। – iono

7

टेम्पलेट्स में ब्लॉक टिप्पणी के लिए, मेरे पाठ संपादक (Komodo) @Garfield's recommendation कम से कम अप्रिय पर इस बदलाव पाता है:

<%# A long multiline comment in a rails template ... 
    # line 2 
    # and so on ... 
    # %> 
7
<%#= 

...commented 
multiline 
block... 

%> 
20

दृष्टिकोण कष्टप्रद है क्योंकि:

  1. यह नहीं करता है मिश्रित एचटीएमएल और रूबी (या सिर्फ एचटीएमएल) के लिए काम नहीं करता है जो एक लाइन पर है
  2. टाइप करना परेशान है

<% if false %> दृष्टिकोण काम करता है, लेकिन यह अजीब लग रहा है और किसी और को नहीं देता जो आपके कोड को आपके इरादों के बारे में संकेत देता है।

application_helper.rb में, एक विधि इसलिए जोड़ें::

मेरे समाधान इस प्रकार है

def comment 
end 
फिर अपने दृश्य टेम्पलेट में

, आप कह सकते हैं:

<% comment do %>Some stuff that won't be rendered...<% end %> 

यह किसी भी वजह से काम करता है रूबी विधि एक ब्लॉक ले सकती है, लेकिन यदि आपकी विधि में yield शामिल नहीं है तो चुपचाप ब्लॉक को चुपचाप अनदेखा कर देगा।

+2

आप इसे <% टिप्पणी करें%% के रूप में भी लिख सकते हैं ... <% टिप्पणी अंत%>। मैंने इस वाक्यविन्यास को उत्कृष्ट पाठ में जोड़ा है ताकि यह एक वास्तविक टिप्पणी की तरह दिखता हो। –

8

चूंकि आप रूबी ब्लॉक डालने के लिए <% %> का उपयोग कर सकते हैं, इसका उपयोग निश्चित रूप से इसमें टिप्पणियों में डालने के लिए किया जा सकता है।

एक सरल और सुरुचिपूर्ण समाधान की तरह लग रहे हैं ...

<% 
# See! I am a Ruby Comment 
# And I am multi-line 
# I look like a recognizable ruby comment block too 
# and not so complex 
# The only drawback with me is the Hash symbol you have to repeat 
# But it's the norm, isn't it? 
%> 
+3

यह काम नहीं करता है। ब्लॉक टिप्पणी के अंदर कोई भी रूबी टैग बाहरी ब्लॉक को बंद कर देगा। – Hovis

0

यह onlyone कि मेरे लिए काम किया है।

<% 
 
=begin %> 
 

 
code code code code code code 
 
code code code code code code 
 
code code code code code code 
 
code code code code code code 
 

 
=end %>

3

के बाद = शुरू डाल की जरूरत नहीं है%>

<% 
=begin 

code code code code code code 
code code code code code code 
code code code code code code 
code code code code code code 

=end %> 
-3

केवल स्वीकार्य समाधान मैं कभी भी इस पीठ को तोड़ने समस्या पाया भीतर एक अंतरिक्ष डाल करने के लिए था "<% =" इसे अब रूबी कोड के रूप में पंजीकृत करने के लिए, और फिर पूरे ब्लॉक को एचटीएमएल टिप्पणियों के साथ टिप्पणी करें

इस तरह:

<!-- 
<p> 
    < %= @some_object.some_attribute %> 
</p> 
<p> 
    < %= @some_object.another_attribute %> 
</p> 
<p> 
    < %= @some_object.some_attribute %> 
</p> 
<p> 
    < %= @some_object.some_attribute %> 
</p> 
--> 

हां, रिक्त स्थान जोड़ना परेशान है। लेकिन यह अभी तक देखे गए सभी समाधानों से कम परेशान है।

+1

आप दस्तावेज़ में रूबी भेजने के बजाय बस '#' जोड़ सकते हैं। – max

+0

@max जो वाक्यविन्यास त्रुटि का कारण बनता है – ineedahero

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