레일 capture helper을 사용하고 있지만 구문이 잘못되었습니다. 나는 그것이 왜 밖으로 인쇄하고 있는지 모르겠다 one
. 레일 3.4에서는 아무 것도 출력하지 않습니다. 당신의 구문이 나는 이유를 "하나"가 표시되어 걱정하지 것이다 잘못 때문에
는 여기를
<% @number = capture do %>
three
<% end %>
this is some html and here is my <%= @number %>
렌더링 된 것이다 HTML
this is some html and here is my three
인을 사용하는 올바른 방법 . 대신 캡처 도우미를 올바르게 사용하는 데 더 집중할 것입니다.
편집 :이
두 번째 (편집) 예를 들어 첫 번째 것과 동일하지 않습니다. 여기에는 행 번호가 표시되고 마지막 행이 약간 변경되어 진행 상황을 볼 수 있습니다.
1. <% my_string = "" %>
2. <% my_string << capture do %>
3. Hello
4. <% end %>
5. before <%= my_string %> after
결과는 Hello before Hello after
입니다. 따라서 3 번 라인이 렌더링되고, 그 다음 5 번 라인은 Hello
값을 포함하는 my_string
으로 렌더링됩니다. 이
<% my_string = "" %>
<% my_string = capture do %> <!-- changed << to = -->
Hello
<% end %>
before <%= my_string %> after
로 변경하는 경우
이 결과는 before Hello after
입니다.
그럼이게 무슨 뜻입니까? <<
을 사용하면 capture
메서드가 엉망입니다. 정상적으로 예상하지는 않지만 캡쳐 블록 안에있는 렌더링 요소가 있습니다.
기본적으로 현재 구문을 사용하지 않으면 여기에서 수행하려는 작업을 수행 할 수 없습니다.
출처
2012-07-14 00:47:52
Dty
그래, 실제로 다른 문자열에 캡처의 반환 값을 추가하고 있지만 예제를 단순화하기 위해 세부 사항을 생략했습니다. – Daniel
레일즈 3.0.3에 올린 것과 정확히 똑같은 것을 시도해 봤니? – Dty
원래 게시물을 더 나은 예제로 업데이트했습니다. 그리고 예, 저는 두 가지 모두 시도했습니다. – Daniel