我试图创建一个简单的菜单,但我遇到了这个问题:HAML一直在逃避我对html实体的链接。我有一个应该生成菜单的助手:
def buildMainMenu(file=Rails.root.join("config","menu.yaml"))
... some operations ...
link = url_for par.merge({:controller=>mitem["controller"], :action=>mitem["action"]})
... some more operations yay ...
haml_tag :a, mitem["label"], :href=>link
end
par是{"testPARAM1"=>"testVAL1","testPARAM2"=>"testVAL2"}
可悲的是输出
<a href='/test/test1?testPARAM1=testVAL1&testPARAM2=testVAL2'>Test2</a>
我现在已经找了一段时间,我似乎无法找到如何强迫HAML NOT 逃避我的字符串:(
答案 0 :(得分:1)
我知道这不是你想要的100%,但我个人会重构这一点 - 这会让你头疼,无论如何,在帮助器中渲染html并不理想。
我将更改辅助函数以获取您的YAML文件或其中的任何内容,并输出包含正确项目的最终数组。
创建_header.html.haml部分(将其放在目录'shared'中),partial将调用辅助函数,获取数组,并且因为您在视图中,您可以使用常规技术循环,并使用link_to等等,你所有的问题都解决了。
这是一种更清洁的做事方式。
答案 1 :(得分:0)
刚想通了(我希望我在花了一个多小时才能找到它但是嘿)。 对于任何感兴趣的人:
有两个函数html_safe
和raw
可以解决问题。用法如下: