因为在haml被编译为html之后评估了把手标签,并且把手计为haml中的平面文本你不能缩进逻辑
{{#if misc}}
%b Misc Products
Total:
{{misc_total}}
{{#each misc}}
{{price_charged}}
{{notes}}
{{/each}}
{{/if}}
哪个难以阅读。 我做了一个铁轨助手,让它更好看*。
def handlebars_helper(helper, &block)
raise ArgumentError, "Missing block" unless block_given?
open = ActiveSupport::SafeBuffer.new("{{##{helper}}}") # helper opening
open.safe_concat capture(&block)
open.safe_concat("{{/#{helper.split.first}}}") # helper closing
concat(open)
end
允许你编写看起来像这样的haml
- handlebars_helper 'if misc' do
%b Misc Products
Total:
{{misc_total}}
- handlebars_helper 'each misc' do
{{price_charged}}
{{notes}}
以前是否已经完成,或者我有更好的方法吗?
*这个助手看起来有点乱,我对块子不太熟悉我该如何清理它?