2011-10-11 56 views
13

我开发了一个Rails 3.1应用程序,它包含100%的Ajax CRUD表单以输入用户和客户。我创建了两个独立的模型,控制器,视图等。每个模型的视图都包含用于创建编辑更新和销毁的jquery文件。问题是当我执行任何执行远程操作的操作时,它被调用两次。我可以在Firebug的控制台视图以及WEBrick输出中确认这一点。任何人都可以协助追查这里发生的事情吗?什么会导致轨道处理每次通话两次?Rails 3.1远程请求提交两次

+0

一些代码将有助于更好地理解透视图。发布被调用两次的代码 – Rafay

+0

这是一个预感 - 你的JavaScript代码或['jquery-rails'](https://github.com/rails/jquery-rails)被包含在页面中两次?如果您进行了任何预编译,请检查公共/资产文件夹。 – Anurag

+0

@Auurag这就是我认为正在发生的事情。在开始发生之前,我运行了“bundle exec rake assets:precompile”。我只需要删除该文件? – ctilley79

回答

13

如果您已预编译资源并以开发模式运行,那么JavaScript中将包含两次页面。

如果处于开发模式,则从public/assets中删除所有内容。

+0

我试图按照你的解决方案(即,删除公共/资产路径,并重新启动我的服务器),但我仍然得到问题中解释的问题。我忘了做点什么吗? – user12882

+2

这是一个缓存问题。重置您的浏览器缓存。在我想出来之前发生在我身上 – ctilley79

+2

你知道有一个rake命令可以做到吗?只需写:耙资产:清理您的终端。 ;) – Kulgar

19

config.serve_static_assets = false添加到development.rb将防止从/public/assets加载文件。

其实我需要在本地进行预编译,因为我的测试模式仅使用来自/public/assets的静态资产 - 测试正在捕捉可能的生产资产问题。怎么样?只需在test.rb配置中设置config.assets.compile = falseconfig.serve_static_assets = true即可。

+1

从Rails 4开始,不建议使用'config.serve_static_assets'。改用'config.serve_static_files'。 – Jin