在视图中动态加载简单内容
我跟着this tutorial构建一个简单的功能:点击一个按钮加载存储在部分内容中的内容。我想稍后在不希望使用信息重载视图的各个地方使用它,以便让它们保持轻微,但如果需要,则允许用户访问信息。在视图中动态加载简单内容
继教程这是代码:
# in view: knowledge/index.html.haml
.container
.row
.col-xs-12
= link_to 'Show more info', fetch_adus_path, :remote => true
#adus
-
# in: config/routes.rb
get '/knowledge/fetch_adus', to: 'knowledge#selected_adus', as: 'fetch_adus'
-
# my partial: knowledge/_adus_all.html.haml
%p Content will be added here
-
# in: knowledge_controller.rb
def selected_adus
respond_to do |format|
format.js
end
end
-
# knowledge/selected_adus.js.haml
$("#adus").html("#{escape_javascript(render partial: 'adus_all')}");
在知识(索引页) - 当我将鼠标悬停在“显示详细信息”浏览器表明它应该链接到本地主机:3000 /知识/ fetch_adus但是当我点击它没有任何反应。我在控制台得到一个错误:
GET http://localhost:3000/knowledge/fetch_adus 500 (Internal Server Error) jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:10255
这(点击后)导致这行代码:
xhr.send((options.hasContent && options.data) || null);
为了提供更多的情况下,当我两次单击链接我得到一个更简单错误:
knowledge/fetch_adus Failed to load resource: the server responded with a status of 500 (Internal Server Error)
导致此轨错误页面:
ActionController::UnknownFormat in KnowledgeController#selected_adus
ActionController::UnknownFormat
Extracted source (around line #25):
respond_to do |format|
我是新来的铁轨,如果任何人有任何想法如何解决它,或者如果有任何其他方式建立我所描述的功能,我将非常感谢任何建议。
的解决方案是简单的比预期的。感谢@dstull,我检查了日志,发现了什么问题。在部分我有一些代码已被注释掉,但奇怪的是它导致模板错误。删除它和两个js解决方案(escape_javascript和j渲染 - 翻译成哈姆 - 工作)。始终检查日志是一种很好的做法。
看起来像你的知识问题/ selected_adus.js.haml文件
尝试重新格式化$("#adus").html("#{escape_javascript(render partial: 'adus_all')}");
到$("#adus").html("<%= j render partial: 'knowledge/adus_all' %>");
感谢@Zubin--看起来这两种解决方案都是正确的,问题出在其他地方 - 在一个已被注释掉的代码中,但仍然导致模板错误。 – Socha
显示请求发出时的服务器日志和完整的控制器代码 – dstull
@dstull我检查了日志,发现了什么问题。在部分文件中,我有一些被注释掉的代码,但奇怪的是它导致了模板错误。删除它和两个js解决方案(escape_javascript和j渲染 - 翻译成哈姆 - 工作)。不知何故,我没有检查日志。将其添加到我的个人调试场景清单中。非常感谢! – Socha