Ruby on rails 在rails中将跨度标记添加到此菜单?
我无法将跨度标记添加到redmine项目菜单。您可以在第182行的trunk/lib/redmine/menu_manager.rb下的redmine存储库中看到完整代码。这是我试图添加span标记的行Ruby on rails 在rails中将跨度标记添加到此菜单?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我无法将跨度标记添加到redmine项目菜单。您可以在第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_nod
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))
但它会在浏览器中将跨度标记呈现为文本,如下所示:
return content_tag('li', render_single_menu_node(node, content_tag(:span, caption), url, selected))
概述
“李”的渲染很好。有没有办法正确添加span标记?看看这是否有帮助:
span_tag = content_tag(:span, caption).html_safe
return content_tag('li', render_single_menu_node(node, span_tag, url, selected))
默认情况下,content\u标记
将转义任何html内容。您可以使用html\u-safe
来防止字符串被转义
在rails 2.3.x上,没有html\u-safe
方法,但是您可以将一个选项传递给content\u标记,告诉它不要转义其内容:
span_tag = content_tag(:span, caption, {}, false)
return content_tag( 'li',
render_single_menu_node(node, span_tag, url, selected),
{},
false )
我刚刚试过,但现在我得到了这个错误:“未定义的方法‘html_safe’用于“登录”:String”。我不知道这是否重要,但我使用的是rails 2.3.5。从外观上看,rails 2.3.5似乎不支持html_-safe。而redmine只支持2.3.5版。是否有html_-safe或其他解决方案的替代方案?请参阅更新的答案以了解rails 2.3.x的信息。(我昨晚在那个信息里加了一个评论,但不知怎么就消失了!)嗯…我明白了。我刚刚尝试了你更新的答案,但出于某种原因,它仍然做同样的事情。我重新启动了服务器。第一个
content\u标签
可能也需要转义选项。请参阅更新的答案。如果这不起作用,罪魁祸首可能是渲染单菜单节点
。不幸的是,它似乎没有关闭html转义的选项: