cha*_*dru 33 jquery ujs ruby-on-rails-3
我有一个奇怪的问题,JQuery正在为link_to方法创建两个AJAX请求.我正在使用JQuery for UJS开发Rails 3应用程序.我有一个切换链接,可以在"关注"和"取消关注"之间切换
我的链接呈现如下:
<span id="follow_link">
<a href="/tfollow_artist?id=8103103" data-method="post" data-remote="true" id="follow_artist" rel="nofollow">Unfollow</a>
</span>
Run Code Online (Sandbox Code Playgroud)
我的控制器设置如下:
def tfollow_artist
@artist = Artist.find(params[:id])
if current_user.following?(@artist)
current_user.stop_following(@artist)
else
current_user.follow(@artist)
end
end
Run Code Online (Sandbox Code Playgroud)
最终将js呈现为:
$('#follow_link').html('<%= escape_javascript(render :partial => "follow") %>');
Run Code Online (Sandbox Code Playgroud)
这基本上用相同的URL替换'<span id ="follow_link"> ... </ span>的html内容,只是文本不同.例如,上面将呈现为:
<span id="follow_link">
<a href="/tfollow_artist?id=8103103" data-method="post" data-remote="true" id="follow_artist" rel="nofollow">Follow</a>
</span>
Run Code Online (Sandbox Code Playgroud)
然而,这在某种程度上导致JQuery发出两个AJAX请求.
任何人都可以看到这里有什么问题吗?
我正在使用'jquery-rails'gem,它正在将最新的jquery-ujs文件复制到我的应用程序中.JQuery版本是1.4.3
Doc*_*ext 26
感谢这个对话框:
https://github.com/rails/jquery-ujs/issues/208
我能够发现jquery和jquery_ujs被包含两次.
我想jquery-rails gem会自动将它们放入application.js,然后我也将它们包含在application.js中.
似乎无论出于什么原因,application.js会自动捆绑app/assets/javascripts /中的所有内容 - 即使我删除了所有要求.
因此,如果您的:remote => true表单已提交两次,请尝试检查application.js.
希望这可以帮助!
更新:我相信这可能与我预先渲染我的资产而不使用摘要有关,所以当我的开发环境动态地从app/assets/application.js中的需求添加html头中的脚本标签时,它还添加一个应该是一个空的动态application.js,除了来自public/assets的静态加载.混乱?是的!
小智 17
我有同样的问题,通过评论这一行修复
\#config.assets.debug = true
Run Code Online (Sandbox Code Playgroud)
在开发模式中
我有同样的问题.运行以下rake任务解决了我的问题.
rake tmp:clear
rake assets:clean
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12426 次 |
最近记录: |