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'的别名) –