Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中将跨度标记添加到此菜单?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 在rails中将跨度标记添加到此菜单?

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

我无法将跨度标记添加到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_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转义的选项: