사용 레일 3.0.6, 나는 내가 content_for(:food_name)
를 사용하여 돌아올 때 나는 그런 다음Ruby on Rails의 content_for가 자동으로 HTML을 이스케이프 처리합니까?
content_for :food_name, "Macaroni & Cheese"
을 할 경우보기에서 다음 &
이미 &
로 할 것이라는 점을 발견했다. content_for(:food_name).html_safe
을 입력해도 상관 없습니다. &
은 여전히 &
입니다. 다음과 같은 방법을 수행하는 경우
는하지만, 이스케이프되지 않은 :이 경우
content_for :food_name, "Macaroni & Cheese".html_safe
에서, &
자동 &
으로 변경되지 않습니다. 지금, 나는 실제로 #{h content_for(:food_name)}
을 장소가 있기 때문에 두 번 (&
가 될) 이스케이프, 아니면 내가 <meta>
설명에 값을 가지고 있기 때문에 , 그것을 호출하지 일부 값에 h
를 호출하는 이상한 것 다른 값의 경우. 자동으로 탈출, 그리고 내가 그것의 끝에 " - come see us!"
를 추가, 지금 다음, 그것을 탈출 레일 3에 의존하는 경우 &
두 번 이스케이프 경우
또한, 하나의 큰 캐치 이다. content_for
문서에서
: 나는 그런 어떤 설명을 볼 수 없습니다
http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for
. 위의 설명이 올바른지 이거나 더 정확한 문서입니까? 사실 자동 HTML 탈출구가 없습니다.
그것은 capture
호출 content_for
위의 웹 페이지 소스 코드에서처럼 보인다, 그것은, 그래서 실제로 자동 탈출 ERB::Util.html_escape
이 없지만, 정말이 있어야하고, 그 이유는 무엇입니까? capture
가 자동으로 탈출을한다는 문서에 포함되지 않았습니까? 아닙니다.
단순한 값 (메타 태그의 값과 같은)을 저장하기위한 편의상, 나는 종종 인스턴스 변수를 대신 사용합니다. 'content_for'는 html 조각을 염두에두고 디자인 된 것 같습니다. – lulalala