HAML :

2013-04-28 2 views
3

내가 잘 작동 ERB에서 코드를 다음 주 잖아 동적 ID를 생성하는 방법 :HAML :

<div id='flash_<%= flash.keys.first.to_s %>'> 
    <%=h flash[flash.keys.first] %> 
</div> 

내가 HAML로 변환 할 :

#flash_#{flash.keys.first.to_s} 
    =h flash[flash.keys.first] 

하지만 오류가 나타날 수

Illegal element: classes and ids must have values. 

'플래시 _'부분이 항상 존재하므로 이상한 점은 내가 할 때도 오류가 발생합니다.

#flash_#{nil.object_id} 

haml의 내 루비 보간에 문제가있는 것 같습니다.하지만 제대로 이해할 수 없습니다. 문서 http://haml.info/docs/yardoc/file.REFERENCE.html#ruby_interpolation_ #에 따르면 {} 루비를 보간하는 데 사용되며 그러한 경우에 작동합니다

#flash_ 
    #{flash.keys.first.to_s} 

을하지만 그건 내가 원하는 게 아니에요.

요약하면, 나는 다음과 같은 출력 싶어 :

<div id="flash_foo"> blahblah </div> 

을뿐만 아니라 수 있습니다 :

<div id="flash_"></div> 

어떻게 HAML으로 그것을 얻기 위해?

+0

당신이 HAML 편안까지 사용 [이] (http://html2haml.heroku.com/) 변환 – prem

+0

@prem가 : 그 링크를 주셔서 감사합니다, 그것은 나에게 매우 유용 할 것이다. – zrl3dx

+0

가능한 복제본 [Haml에서 동적 ID를 만드는 방법은 무엇입니까?] (http://stackoverflow.com/questions/2217583/how-do-i-make-dynamic-ids-in-haml) – lulalala

답변

9
%div{ :id => "flash_#{flash.keys.first}" }  
    =h flash[flash.keys.first] 
+0

그건 정확히 내가 원했던 것입니다. , 감사. – zrl3dx