2
我的rails應用程序使用js.erb視圖而不是html.erb視圖來顯示特定的窗口。這在實踐中工作正常,但是當我用黃瓜測試與水豚當我點擊屬於這個特定視圖按鈕它給我的當沒有html.erb存在時,黃瓜測試js.erb函數
Missing template admin/groups with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths
錯誤。沒有groups.html.erb,但有一個groups.js.erb。我想以某種方式告訴黃瓜/水豚不要嘗試呈現groups.html.erb,但仍呈現groups.js.erb。我寧願不生成一個不必要的html文件來呈現下面的轉義javascript所做的相同的事情。
groups.js.erb:
$("#admin_content").html("<%= escape_javascript(render :partial => 'groups') %>");
相關的管理控制方法:
def groups
@groups = Group.all
end
這有點幫助,這個黃瓜不再要求看到html,但它仍然不會正確渲染轉義javascript,這是一個不同的問題,所以這是正確的答案 – dannymc129
如果你看看[escape_javascript源碼](http://apidock.com/rails/ActionView/Helpers/JavaScriptHelper/escape_javascript),您會看到該方法檢查其參數是否標記爲「html_safe」,並相應地標記輸出。如果輸出未標記爲html_safe,則不會正確呈現。試試這個:'<%= raw j(render partial:'groups')%>'('j'是'escape_javascript'的別名) –