如何在Haml文檔中動態插入Haml文件的名稱?在Haml文檔輸出中插入Haml文件名
喜歡的東西:
%b =insert_file_name
在一個文件名爲foo.haml
應該輸出
<b>foo.haml</b>
如何在Haml文檔中動態插入Haml文件的名稱?在Haml文檔輸出中插入Haml文件名
喜歡的東西:
%b =insert_file_name
在一個文件名爲foo.haml
應該輸出
<b>foo.haml</b>
它會是不錯的,如果HAML有同等的$0
或__FILE__
檢索當前模板,但我在文檔中沒有看到類似的東西。相反,你可以做這樣的事情:
require 'haml'
首先,創建一個變量或常量保持模板的名稱要使用:
HAML_FILE = 'test.haml'
設置變量,你需要什麼,然後讀取模板,並將其傳遞給HAML渲染:
haml_template = File.read(HAML_FILE)
engine = Haml::Engine.new(haml_template)
puts engine.render
這是輸出:
<html>
<body>
<p>test.haml</p>
</body>
</html>
這是我用過的模板:
%html
%body
%p= HAML_FILE
我想通過反思動態地做到這一點。 – user492922
我沒有看到任何暴露在Haml的寶石文檔,讓你這樣做。你可以通過瀏覽源代碼並添加一個方法,或者通過重寫某些東西來完成它,但是,看起來好像沒有辦法讓它告訴你當前的模板是什麼。我建議直接詢問開發人員。 –
寫助手返回的文件名。我嚴重懷疑存在,因爲HAML是從內存字符串編譯的。 – meagar
根據你如何唱歌,'__FILE__'應該可以工作。在編譯字符串時,可以傳入用於文件名的值,如果有,則可以使用__FILE__來獲取它。 'haml'命令行工具正確地做到了這一點,就像Tilt(由Sinatra使用)一樣,我也認爲Rails也是如此。 – matt