Rails 4,flash消息中的链接未被解析为HTML
发布时间:2020-12-15 19:47:43 所属栏目:百科 来源:网络整理
导读:在控制器中,我有以下flash消息: flash[:notice] = %Q[Please #{view_context.link_to('create a new account',new_account_path)},after that you will be able to create orders.].html_safe 这是布局中的闪存区域: div id="main_flash_area"% flash.each
在控制器中,我有以下flash消息:
flash[:notice] = %Q[Please #{view_context.link_to('create a new account',new_account_path)},after that you will be able to create orders.].html_safe 这是布局中的闪存区域: <div id="main_flash_area"> <% flash.each do |name,msg| %> <div class="alert text-center alert-info"> <a class="close" data-dismiss="alert">× Закрыть</a> <%= msg %> </div> <% end %> </div> 它有点呈现为链接,但浏览器不会将其解析为链接.它显示为 Please <a href="/accounts/new">create a new account</a>,after that you will be able to create orders. 生成的HTML: <div id="main_flash_area"> <div class="alert text-center alert-info"> <a class="close" data-dismiss="alert">× Закрыть</a> Please <a href="/accounts/new">create a new account</a>,after that you will be able to create orders. </div> </div> 如何使其成为正确的链接?我猜它逃脱了<一个>在某些时候标记. 解决方法
您需要在视图中清理闪存消息.
<%= sanitize(msg)%> 这将在视图中呈现链接而不是转义html. 请注意,这将适用于您应用中的所有Flash消息.如果您在flash消息中显示任何用户输入,则必须记住在显示它之前将其转义为Rails自动转义将不适用. 请注意,sanitize帮助程序不太容许原始帮助程序和它可以配置.它可以自动使用链接,默认情况下会删除脚本标记,如果您的闪存中有用户内容,则会提供一些保护,但您需要进行全面检查以确保不会引入任何安全问题.有关详细信息,请查看Rails文档. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |