使用link_to来指定控制器动作时,使Ajax部分出现问题

问题描述

| 我在\“ proposition \”显示页面上有一个div(id = \“ content \”),我要根据选择的div顶部的哪个选项卡来渲染不同的部分。 我正在尝试使用以下link_to使用AJAX渲染部分(substantive_content):
<%= link_to \"Connected\",:url => {:controller => \"propositions\",:action => \"substantive_content\"},:remote => true %>
我有两个问题: 点击链接后,即会收到GET请求 发送到
PropositionsController#show
,以及 不(我认为)为“实质” 内容”操作。这只会刷新页面,并且不会远程执行任何操作。不会显示正确的部分内容。 我不确定如何渲染 部分归入“内容” div。 目前,我在PropositionsController中具有以下功能:
  def substantive_content
     respond_to do |format|
         format.js{ render :update do |rightbar|
                 rightbar.replace_html \'content\',\'Hello World!\'
         end}
     end
  end
...但是不确定从这里去哪里。我什至会以正确的方式解决这个问题吗?我对Rails,JavaScript等非常陌生。 这些问题中的任何一个的帮助都是很棒的。谢谢!     

解决方法

        在route.rb文件中,您应该有一个substantive_content操作条目。它可能看起来像这样:
match \"substantive_content\" => \"propositions#substantive_content\",:as => substantive_content
然后,在您看来,链接应如下所示:
<%= link_to \"Connected\",substantive_content_path,:remote => true %>
当js请求进入substantive_content动作时,我将呈现js.erb文件。动作看起来像这样:
def substantive_content
  respond_to do |format|               
    format.js
  end        
end 
然后在您的views / propositions目录中创建一个substantive_content.js.erb文件。在该文件中,您可以使用jquery更新内容div:
$(\'#content\').html(\"<%= render :partial => \'your_partial_name_here\' %>\");
在不了解您正在处理的实际应用程序的情况下,很难说这是否是实现所需目标的最佳方法。我通常会尽量让我的应用程序保持“ RESTful”状态,因此我不愿意创建动作不是正常索引,新建,创建,显示等设置的一部分。并不是说在这种情况下不是必需的,而是要考虑的事情。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...