레일에서-%>와 %>의 차이
이 질문에 이미 답변이 있습니다.
레일스 튜토리얼을 시작했고 뷰 코드 블록 중 일부가
<h1><%= @subject.name -%></h1>
다른 코드 블록은 다음과 같습니다.
<h1><%= @subject.name %></h1>
-%>와 %>의 차이점은 무엇입니까?
좋은 구문 참조를 알고 있다면 저를 가리킬 수 있습니다. 또한 도움이 될 것입니다.
추가 대시는 ERB가 닫는 태그 뒤에 개행을 출력하지 않도록합니다. 귀하의 예에는 차이가 없지만 다음과 같은 경우 :
<div>
<% if true -%>
Hi
<% end -%>
</div>
다음을 생성합니다.
<div>
Hi
</div>
그리고 이것은 아닙니다 :
<div>
Hi
</div>
-
이전 %>
에는 더 이상 필요하지 않으며 제외해야한다고 확신 합니다.
크롬에 적어도, 생성 된 HTML을 사용하여 동일한 모양 -%>
이나 %>
.
ERB가 아닌 HAML을 사용하는 경우 태그 뒤보다 작거나 큰 기호로 비슷한 작업을 수행 할 수 있습니다.
>
태그 주변의 모든 공백 <
을 제거하고 그 안의 모든 공백을 제거합니다.
.float-left<
%p
Lorem ipsum dolor sit amet
다음으로 컴파일됩니다.
<div class="float-left"><p>
Lorem ipsum dolor sit amet
</p></div>
과…
%left_tag
%inside>
%right_tag
다음으로 컴파일됩니다.
<left_tag /><inside /><right_tag />
HAML을 사용하지 않는 경우 확실히 확인해 볼 가치가 있습니다.
업데이트 :이 대답은 잘못 되었습니다. 대신 https://stackoverflow.com/a/25626629/895245 를 참조 하십시오 .
Ruby 2.1 (Rails와 함께 사용할 필요는 없음)에서는 -
후행 줄 바꿈 하나를 제거합니다.
- 개행은 다음의 첫 번째 문자 여야합니다.
>
- 공백이 제거되지 않습니다.
- 하나의 개행 만 제거됩니다.
- 당신은 있어야 패스
'-'
를 사용하는 옵션을
예 :
require 'erb'
ERB.new("<%= 'a' %>\nb").result == "a\nb" or raise
begin ERB.new("<%= 'a' -%>\nb").result; rescue SyntaxError ; else raise; end
ERB.new("<%= 'a' %>\nb" , nil, '-').result == "a\nb" or raise
ERB.new("<%= 'a' -%>\nb" , nil, '-').result == 'ab' or raise
ERB.new("<%= 'a' -%> \nb" , nil, '-').result == "a \nb" or raise
ERB.new("<%= 'a' -%>\n b" , nil, '-').result == 'a b' or raise
ERB.new("<%= 'a' -%>\n\nb", nil, '-').result == "a\nb" or raise
문서 : http://ruby-doc.org/stdlib-2.1.1/libdoc/erb/rdoc/ERB.html
Rails 4.1 documents this at http://api.rubyonrails.org/classes/ActionView/Base.html, and appears to:
use ERB by default at: https://github.com/rails/rails/blob/fcbdac7e82725c388bf5adf56a9a9a16d4efdbe0/actionview/lib/action_view/template/handlers.rb#L10
set
-
by default at: https://github.com/rails/rails/blob/fcbdac7e82725c388bf5adf56a9a9a16d4efdbe0/actionview/lib/action_view/template/handlers/erb.rb#L77
However, Rails 4.1 does remove trailing whitespaces as documented while pure ERB does not, so there may be other differences.
Also, it is not removing the leading newlines as documented: it might be a documentation bug. Opened an issue at: https://github.com/rails/rails/issues/16766
ReferenceURL : https://stackoverflow.com/questions/998979/difference-between-and-in-rails
'IT이야기' 카테고리의 다른 글
UISearchController iOS 11 사용자 정의 (0) | 2021.04.13 |
---|---|
어떤 데이터 구조를 사용 하시겠습니까 : TreeMap 또는 HashMap? (0) | 2021.04.13 |
StringBuilder 대 StringWriter 및 PrintWriter의 문자열 어셈블리 (0) | 2021.04.13 |
Mercurial에서 병합을 취소하고 나중에 해당 분기로 다시 병합 (0) | 2021.04.13 |
C- 구조체의 메모리 정렬 (0) | 2021.04.12 |