부울 특성은 HTML 5 초안 표준에 정의 :Ruby on Rails content_tag options 해시 - 부울 html 속성을 설정 하시겠습니까?
http://dev.w3.org/html5/spec/Overview.html#boolean-attributes
요소가 참값 및 속성 의 부재를 나타낸다 에 부울 특성의 존재를 나타내는 거짓 값.
속성이 존재하는 경우, 그 값 중 하나를 빈 문자열이나 선행 또는 후행 공백없이 과 함께 속성의 정식 이름에 대한 ASCII 대소 문자를 구분하지 일치하는 값을해야합니다.
내 페이지가 html5 DTD를 사용 중입니다. 내 자신의 도우미에서 content_tag보기 도우미를 사용하려고하지만 부울 속성을 전달하는 데 문제가 있습니다. 내보기에
def itemscope(type, options = {}, &block)
content_tag(
:div, {
:itemscope => true,
:itemtype => data_definition_url(type)
}.merge(options),
true,
&block
)
end
def data_definition_url(type)
"http://data-vocabulary.org/#{type}"
end
,의 내가 (내가 HAML을 사용하고 있습니다)과 같이 호출 가정 해 봅시다 :
= itemscope("Organization") do
%h1 Here's some content
이 내가 원하는 것이 무엇
는 특히이 내 도우미
<div itemscope itemtype='http://data-vocabulary.org/Organization'>
<h1>Here's some content</h1>
</div>
을하지만 이것은 내가 실제로 얻고 무엇을 : : 렌더링하는
을<div itemscope='true' itemtype='http://data-vocabulary.org/Organization'>
<h1>Here's some content</h1>
</div>
w3 사양에 따라 잘못된 마크 업입니다. 부울 속성의 유효한 값은 속성 자체의 이름이거나 전혀 값이 아닙니다.
:itemscope => true
을 :checked => true
으로 변경할 수 있으며 div 요소의 속성 목록에서 해당 속성을 checked='checked'
으로 올바르게 렌더링하므로 성가신 것입니다.
난 그냥 itemscope
의 최소화 된 버전을 렌더링하는 것이 좋겠지 만 ... 어떻게 해야할지 모르겠다 content_tag 옵션을 사용합니다. 나는 아주 쉽게 보낼 수있다 : itemscope => 'itemscope'그러나 그것들이 모든 예제와 사양이 최소화 된 버전을 보여주기 때문에 google에 의해 정확하게 해석 될지 말하기는 어렵다. 이 속성들이 무엇인지 알기 위해서 여기를 보시려면 http://www.google.com/support/webmasters/bin/answer.py?answer=146861
아무 것도없이 사실상 또는 거짓 (루비 부울) 값을 true 또는 false (루비 부울) 값으로 보내면 어떤 방법으로도 렌더링 할 수 있습니다. 부울 값을 문자열로 바꾸는 대신 값을 사용 하시겠습니까? 감사합니다 :)
패치에 대한 좋은 생각처럼 소리 :) 패치는이 경우,하지 레일에 HAML이 될 것입니다 있지만. –
아니요, 문제는 HAML이 아닌 Rails의 content_tag 도우미 및 관련 함수에 있습니다. – jakeonrails