루비 코드와 혼합 된 html을 어떻게 주석 처리합니까?
some text <% ... %> more text <%= ... %>
something else
<% ... %>
jsp에서는 정말 간단합니다. <%-- ... --%>
하지만 레일에서 간결한 옵션을 찾을 수 없습니다.
간단한 html 주석은 <!-- ... -->
작동하지 않습니다 : 루비 코드는 여전히 실행되고 오류를 울립니다.
if false
html 주석과 함께 사용할 수있는 옵션이 있지만 IDE가이를 지원하지 않는다는 것은 말할 것도없고 매우 장황합니다.
놀랍게도 작동하는 순수한 루비에서 오는 옵션도 있습니다.
<%
=begin %>
... html and ruby code goes here
<%
=end %>
장황하고 이상해 보이고 내가 아는 루비 IDE 중 어느 것도 지원하지 않는다는 점을 제외하면 일반적으로 괜찮습니다.
궁금합니다, 레일에서 이것을하는 ‘공식’이 있습니까?
감사!
답변
나는 해결책으로 간주하지 않을 것이지만 아마도
<% if false %>
...
<% end %>
또는 조금 더럽다고 느끼면 아무것도 출력하지 않는 도우미를 만듭니다.
나는 그것을 필요로하지 않았지만, 이것에 대한 즉시 사용 가능한 솔루션이 없다는 것을 발견했습니다.
답변
한 줄에 주석을 달 때 사용합니다.
<%# your_ruby_code %>
여러 줄의 경우
<%
=begin %> <% ruby_code %>
<%
=end %>
당신이 말한 것이 효과가 있습니다.
답변
=begin
접근 방식은 성가신 때문입니다 :
- 한 줄에있는 혼합 HTML과 Ruby (또는 HTML 만)에서는 작동하지 않습니다.
- 타이핑하는 것이 귀찮습니다.
<% 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?
%>