[ruby-on-rails] Rails의 html.erb 템플릿에서 주석 차단

루비 코드와 혼합 된 html을 어떻게 주석 처리합니까?

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

jsp에서는 정말 간단합니다. <%-- ... --%>하지만 레일에서 간결한 옵션을 찾을 수 없습니다.

간단한 html 주석은 <!-- ... -->작동하지 않습니다 : 루비 코드는 여전히 실행되고 오류를 울립니다.

if falsehtml 주석과 함께 사용할 수있는 옵션이 있지만 IDE가이를 지원하지 않는다는 것은 말할 것도없고 매우 장황합니다.

놀랍게도 작동하는 순수한 루비에서 오는 옵션도 있습니다.

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

장황하고 이상해 보이고 내가 아는 루비 IDE 중 어느 것도 지원하지 않는다는 점을 제외하면 일반적으로 괜찮습니다.

궁금합니다, 레일에서 이것을하는 ‘공식’이 있습니까?

감사!



답변

나는 해결책으로 간주하지 않을 것이지만 아마도

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

또는 조금 더럽다고 느끼면 아무것도 출력하지 않는 도우미를 만듭니다.

나는 그것을 필요로하지 않았지만, 이것에 대한 즉시 사용 가능한 솔루션이 없다는 것을 발견했습니다.


답변

한 줄에 주석을 달 때 사용합니다.

<%# your_ruby_code %>

여러 줄의 경우

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

당신이 말한 것이 효과가 있습니다.


답변

=begin접근 방식은 성가신 때문입니다 :

  1. 한 줄에있는 혼합 HTML과 Ruby (또는 HTML 만)에서는 작동하지 않습니다.
  2. 타이핑하는 것이 귀찮습니다.

<% if false %>접근 작품, 그것은 이상한 모양과 코드에서 당신의 의도에 대한 힌트를 보이는 다른 사람을 포기하지 않고.

내 솔루션은 다음과 같습니다.

에서 다음 application_helper.rb과 같이 메서드를 추가합니다.

def comment
end

그런 다음보기 템플릿에서 다음과 같이 말할 수 있습니다.

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

이것은 모든 Ruby 메소드가 블록을 취할 수 있기 때문에 작동하지만 메소드에 yield.


답변

<%#=

...commented
multiline
block...

%>


답변

템플릿의 블록 주석의 경우 내 텍스트 편집기 (Komodo)는 @Garfield의 권장 사항에서 가장 덜 불쾌한 변형을 찾습니다 .

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


답변

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


답변

당신이 사용할 수 있기 때문에 <% %>루비 블록을 넣어, 확실히 그것으로 주석에 넣어 사용할 수 있습니다.

더 간단하고 우아한 솔루션은 다음과 같습니다.

<%
# 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?
%>