2012-03-06 3 views
7

내 루비 응용 프로그램의 일부 데이터를 사용하여 일부 내용을 채우는 haml 템플릿을 만들려고합니다. 인수를 haml에 전달하여 올바르게 렌더링 할 수 있습니까? 내가 HAML 템플릿을 얻고 그것을 렌더링 해요 방법은 다음과이야 :렌더링하는 동안 루비 객체를 haml에 전달할 수 있습니까?

template = File.open('path/to/template.haml') 
html = Haml::Engine.new(template.read).render 

을 그래서,이 페이지가 제대로 렌더링 그들은 있도록 템플릿 파일에 로컬 루비 스크립트에서 오브젝트를 통과 할 수 있습니까? 아니면 객체에 haml 파일을 가져올 수 있습니까?

이 방법이 효과가 없다면 내 생각에 좀 더 지루한 로컬 문자열로 템플릿을 작성해야합니다. 그래서,이 작업에보다 효율적인 다른 코딩 패턴이 있습니까?

답변

5

예,

확인 문서 : http://haml.info/docs/yardoc/Haml/Engine.html#render-instance_method

  • (문자열) 렌더링 (범위 = Object.new, 지역 주민 = {}, & 블록)

이 그들을 통과 지역 주민

+0

"현지인"은 해시가되어야하며 ... 나는 그 렌더링 방법에 객체의 json 트리를 가져 오려고합니다. 틀림없이 아직 시도하지 않았습니다. 그러나 이것이 바로 한계입니까? – PandaWood

0

다음은 루비를 사용하는 방법의 예입니다.

template = File.read('path/to/template.haml') 
html = Haml::Engine.new(template).render(Object.new, :my_object => my_object) 
관련 문제