如何从haml文件中调用助手中的方法
在sample.haml中,我需要根据某些条件调用相同的方法(show_message
)。然后,我将方法移到了辅助方法,但是方法返回的值仅被视为字符串,而不是haml元素。
sample.haml
- if msg.is_a?(Array)
- msg.each do |m|
= show_message(m)
- if msg.is_a?(String)
= show_message(msg)
helper.rb
def show_message(msg)
haml = <<-HAML
%div{class: some_class}
= content_tag :div, #{msg}, id: "id"
HAML
end
如果我直接在sample.html的show_message
中编写相同的html元素,则它可以正常工作。我该怎么解决?
答案 0 :(得分:0)
您的辅助方法需要通过方法构造完整的HTML。由于它实际上不是HAML的一部分,因此您不能依赖于%div{class: some_class}
之类的语法。像这样:
def show_message(msg)
content_tag(:div, class: 'some_class') do
content_tag(:div, msg, id: "id")
end
end
有关更多用法示例,请参见the documentation。