在视图中动态加载部分简单内容

时间:2017-11-11 18:15:35

标签: jquery ruby-on-rails ajax

我按照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 |

我是铁杆新手,如果有人知道如何修复它,或者是否有任何其他方式来构建我所描述的功能,我将非常感谢任何建议。

2 个答案:

答案 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' %>");

相关问题