2016-05-05 45 views
0

我在json.erb模板中包含以下json數據幷包含腳本標記。包含腳本標記後,我得到無效的json響應。下面的代碼有什麼問題。如何在json.erb模板中呈現腳本標記

{ 
    "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> 

回答

0

您可以從您的控制器與渲染JSON:

def show 
    ... # setup code 
    render json: @my_json_structure 
end 

這將允許你打從一個AJAX請求show動作。讓我知道,如果我可以給你更多的信息。

+0

我得到的JSON響應JSON對象正確,但是一旦我將javascript

1

您不能在您的JSON中包含<script>或任何其他標記。那會使它失效。

此外,不要忘記把你的文本值包裝成引號。否則,你的JSON將是無效的。

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

要動態加載和執行JavaScript文件,你可以使用jQuery.getScript()方法或動態在JavaScript中創建一個script類型(如果你沒有在你的項目中使用jQuery)。

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

你認爲任何其他的?我必須包含JavaScript,因爲頁面需要一些JavaScript代碼。 – Kumar

+0

將其作爲javascript單獨加載。另外,不要忘記把你的字符串換成引號。更新了我的答案。 – Uzbekjon

+0

@Kumar根據您的要求添加了替代品。 – Uzbekjon

0

如果你想腳本標記或需要RO運行JS作爲迴應,我認爲你應該使用js.erb,並在控制器對象,你可以使用js.erb

相關問題