在rails中为此菜单添加span标签?

时间:2010-12-10 19:03:30

标签: ruby-on-rails ruby

我无法在redmine项目菜单中添加span标记。您可以在第182行的trunk / lib / redmine / menu_manager.rb下的redmine存储库中看到完整代码。这是我尝试添加span标记的行。

return content_tag('li', render_single_menu_node(node, caption, url, selected))

我尝试添加这样的span标记:

return content_tag('li', render_single_menu_node(node, content_tag(:span, caption), url, selected))

但它会在浏览器中将span标记呈现为文本,如下所示:

<跨度>概要< /跨度>

'li'渲染得很好。有没有办法正确添加span标签?

1 个答案:

答案 0 :(得分:0)

看看这是否有帮助:

span_tag = content_tag(:span, caption).html_safe
return content_tag('li', render_single_menu_node(node, span_tag, url, selected))

默认情况下,content_tag将转义任何html内容。您可以使用html_safe来防止字符串被转义。

在rails 2.3.x上,没有html_safe方法,但您可以向content_tag传递一个选项,告诉它不要转义其内容:

span_tag = content_tag(:span, caption, {}, false)
return content_tag( 'li', 
                    render_single_menu_node(node, span_tag, url, selected), 
                    {}, 
                    false )