如何在json.erb模板中呈现脚本标记

时间:2016-05-05 17:41:49

标签: javascript jquery ruby-on-rails json

我在json.erb模板中有以下json数据,并在其中包含了脚本标记。包含脚本标记后,我得到无效的json响应。下面的代码有什么问题。

{
  "name" : <%= @name %>,
  "totalRecords" : <%= @all_records %>,
  "filteredRecords" : <%= @filteredRecords %>,
  "data" : [
    <%= render partial: "user_list", collection: @users %>
  ]
}

<script type="text/javascript">
  $(document).ready(function(){
    $('#selectall').click(function () {
      //  .....
    });
  });
</script>

3 个答案:

答案 0 :(得分:1)

您不能在JSON中包含<script>或任何其他标记。这会使它无效。

另外,不要忘记将文本值包装成引号。否则,您的JSON将无效。

{
  "name" : "<%= @name %>",
  "etc.": "...",

要动态加载并执行javascript文件,您可以使用jQuery.getScript()方法或在javascript中动态创建script类型(如果您不在javascript中使用jQuery)项目)。

$.getScript('js/your-javascript.js');

答案 1 :(得分:0)

您可以使用以下命令从控制器渲染JSON:

while (file >> a >> b)

这将允许您从AJAX请求中点击show动作。如果我能给你更多信息,请告诉我。

答案 2 :(得分:0)

如果你想要脚本标签或需要ro run js作为回应,我认为你应该使用js.erb并在控制器上创建json对象,你可以在js.erb上使用