我会使用辅助方法。在红宝石中,它会是这样的:
def asp_tag attrs_hash={}
result = '<asp:TextBox '
result << 'runat="server" '
attrs_hash.each {|k,v| result << "#{k}=\"#{v}\"" }
result << '>'
result << yield # not necessary if you never have a body in your tag
result << '</asp:TextBox>'
result.html_safe # in rails anyways.....
end
并在您的视图中使用它,如下所示:
= asp_tag{id: 'txtName'}
.moreStuff
teh awesome
应该渲染
<asp:TextBox id="txtName" runat="server">
<div class="moreStuff">
teh awesome
</div>
</asp:TextBox>
由于您处于微软环境中,其中部分或大部分可能会或可能不会起作用。 ruby 方法可能会被您运行 haml 的任何语言的某些内容所取代。
另一种选择是使用部分。我使被调用的代码更好,但调用更糟糕。我倾向于将丑陋隐藏起来。