Ruby on rails 为什么我的RubyonRails链接到两次发送动作?

Ruby on rails 为什么我的RubyonRails链接到两次发送动作?,ruby-on-rails,Ruby On Rails,在其中一个视图中,我的Ruby on Rails应用程序中有一个link_to方法,当我点击它时,控制器将执行一系列操作。。。但是由于某些原因,我看到这个GET请求两次,甚至当我点击一次链接时 以下是链接的外观: <%= link_to image_tag("excel.png"), spreadsheet_technical_report_path(report) %> 我甚至用binding.pry替换了该函数的内容,它命中了两次!这太令人困惑了。我的整个Generat

在其中一个视图中,我的Ruby on Rails应用程序中有一个link_to方法,当我点击它时,控制器将执行一系列操作。。。但是由于某些原因,我看到这个GET请求两次,甚至当我点击一次链接时

以下是链接的外观:

    <%= link_to image_tag("excel.png"), spreadsheet_technical_report_path(report) %>
我甚至用binding.pry替换了该函数的内容,它命中了两次!这太令人困惑了。我的整个GenerateSpreadsheet模型做了很多事情,大约需要一分钟,而第二个请求只做了两倍的时间


有人能告诉我我错过了什么吗?我没有为此设置视图,因为我希望它只向用户发送正在执行的下载提示,而不必转到视图。我甚至不知道没有视图是否与此相关。

感谢chaitanya saraf的评论,我刚刚删除了//=require树。从我的application.js获得修复。一旦我摆脱了它,我就把它添加到我的config/initializers/asset.rb文件中

Rails.application.config.assets.precompile += [/.*\.js/,/.*\.css/]
轻松愉快地解决了这个烦人的问题。

JS

要添加到注释中,这里的主要问题可能是您已经将一些javascript绑定到页面的a元素

在没有remote:true和其他钩子的情况下,唯一可能导致链接双发的是Javascript是否也在发送ajax请求

你提到你

已删除//=需要树。从my application.js

。。。虽然这很好地解决了这个问题,但你必须记住,没有人告诉计算机,计算机是不会发生任何事情的。IE你的链接不会只是为了它而双击


如果删除//require_树时JS工作正常,则需要查看其他JS文件。您将绑定到$a.onclick事件,这可能会导致您的链接被双重激活。

有时会由于js冲突或js在应用程序中被加载两次而发生这种情况,请检查我是否修改了应用程序以加载页面特定的js脚本,并且它仍在这样做。还有其他建议吗?请转到应用程序的根文件夹。运行此命令rm-r assets并在开发模式下运行服务器。告诉我它是否解决了这个问题。它现在似乎可以通过加载特定于页面的JS脚本来工作。我不知道为什么第一次没用。如果它再次启动,我会试试哈利的建议。非常感谢各位!一个小提示:通知您的控制器您想要excel格式,并让控制器操作相应地响应:知道为什么我根本没有加载任何js文件,但它仍然提交两个请求吗?现在第一个请求只是一个GET,下一个请求是HEAD。。。这太烦人了。你能发布控制台截图吗?我也想知道这个问题是什么。这是因为有一个空的application.js文件:在我为电子表格操作添加了一个视图之后,第二个屏幕截图中的所有错误都消失了,但是HEAD请求仍然通过,这很烦人。如果请求是GET请求而不是HEAD请求,我是否应该修改控制器中的操作以仅执行电子表格内容?我不明白HEAD请求是什么意思?也许我很愚蠢,但我就是看不到你的截图
Rails.application.config.assets.precompile += [/.*\.js/,/.*\.css/]