gpt4 book ai didi

javascript - 在 rails .rb 文件中取消转义 javascript/在 ruby​​ 方法中返回 js

转载 作者:行者123 更新时间:2023-11-29 10:24:23 25 4
gpt4 key购买 nike

我在我的插件方法之一中返回了以下 js(在字符串文字中)。因此,当我调用该方法时,它会将此放在我的 View 中。问题出在网站上,所有<, ", ', >等被转义到&lt;, &quot;什么的。我怎样才能做到这一点?我尝试了各种方法,但似乎都不起作用:/我认为这个插件可能有点旧,所以这在早期版本的 Rails 中是可能的...

%Q{<script type="text/javascript">
$(function() {
$('#{table_dom_id}').dataTable({
"oLanguage": {
"sSearch": "#{search_label}",
#{"'sZeroRecords': '#{no_records_message}'," if no_records_message}
"sProcessing": '#{processing}'
},
"sPaginationType": "full_numbers",
"iDisplayLength": #{per_page},
"bProcessing": true,
"bServerSide": #{server_side},
"bLengthChange": false,
"bStateSave": #{persist_state},
"bFilter": #{search},
"bAutoWidth": #{auto_width},
#{"'aaSorting': [#{sort_by}]," if sort_by}
#{"'sAjaxSource': '#{ajax_source}'," if ajax_source}
"aoColumns": [
#{formatted_columns(columns)}
],
#{"'fnRowCallback': function( nRow, aData, iDisplayIndex ) { #{row_callback} }," if row_callback}
"fnServerData": function ( sSource, aoData, fnCallback ) {
aoData.push( #{additional_data_string} );
$.getJSON( sSource, aoData, function (json) {
fnCallback(json);
} );
}
})#{append};
});
</script>}

感谢任何帮助,谢谢!

最佳答案

这个问题经常被问到。您需要告诉 Rails 不要使用以下两种方式之一转义字符串:

  1. <%= 'string'.html_safe %>
  2. <%= raw 'string' %>

在大多数情况下,第一个是首选,因为它更灵活。例如,您可以在定义字符串时将其标记为 HTML 安全的,然后如果有内容对其进行了修改,它将自动标记为不安全的。这有助于避免不小心让自己受到攻击。

但是,最好将该代码移动到某种 View 中。你应该避免在你的方法中有输出。对于助手,有限的输出代码是最好的(通常只是片段)。

关于javascript - 在 rails .rb 文件中取消转义 javascript/在 ruby​​ 方法中返回 js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com