我按照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')}");
在知识(索引)页面上 - 当我将鼠标悬停在'显示更多信息' Chrome表示它应该链接到localhost:3000 / knowledge / fetch_adus但是当我点击它时没有任何反应。我在控制台中收到错误:
获取http://localhost:3000/knowledge/fetch_adus 500(内部服务器错误)jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body = 1:10255
(点击后)导致这行代码:
xhr.send((options.hasContent&& options.data)|| null);
为了提供更多的上下文,当我点击链接两次时,我得到一个更简单的错误:
knowledge / fetch_adus无法加载资源:服务器已响应 状态为500(内部服务器错误)
导致此rails错误页面:
KnowledgeController中的ActionController :: UnknownFormat#selected_adus
ActionController :: UnknownFormat
提取的来源(第25行):
respond_to do | format |
我是铁杆新手,如果有人知道如何修复它,或者是否有任何其他方式来构建我所描述的功能,我将非常感谢任何建议。
答案 0 :(得分:1)
解决方案比预期简单。感谢@dstull我检查了日志,发现了问题所在。在部分我有一些被注释掉的代码,但奇怪的是它导致模板错误。删除它和两个js解决方案(escape_javascript和j渲染 - 翻译为haml - 工作)。始终检查日志是一种很好的做法。
答案 1 :(得分:0)
您的知识/ selected_adus.js.haml文件似乎有问题
尝试将$("#adus").html("#{escape_javascript(render partial: 'adus_all')}");
重新格式化为$("#adus").html("<%= j render partial: 'knowledge/adus_all' %>");