Catch-22-如果我在应用程序中加载jquery_ujs,则在执行时,我观察到jquery_ujs代码从rails中拉出了错误的path / url值,当它向服务器请求不存在的url时会产生一个安静的(e)。
如果我没有在application.js中加载jquery_ujs,则回调URL不会被篡改,并且页面将按预期进行更新,但是我随后放弃了rails.js。嘘
铁轨新手。我不知道答案是否正在盯着我。也许是。我有宝石碰撞问题吗?有想法吗?有什么建议吗?
可能相关:使用Google Maps API。地图画布上的活跃侦听器。
//= require jquery
//= require bootstrap
//= require turbolinks
//= require_tree .
(rails.js不在树中)
source 'https://rubygems.org'
ruby '1.9.3'
gem 'bcrypt', '3.1.7'
gem 'faker', '1.4.2'
gem 'carrierwave', '0.10.0'
gem 'mini_magick', '3.8.0'
gem 'fog', '~> 1.23.0', require: 'fog/aws/storage'
gem 'rails', '4.1.4'
gem 'pg'
platforms :mswin do
# gems specific to windows
gem 'tzinfo'
end
gem 'geocoder', '1.2.6'
gem 'validate_url'
gem 'country_select', '~> 2.1.0'
gem 'will_paginate', '3.0.7'
gem 'bootstrap-will_paginate','0.0.10'
gem 'bootstrap-sass', '3.3.1'
gem 'simple_form', '~> 3.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'rails-html-sanitizer', '1.0.1'
gem 'sdoc', '~> 0.4.0', group: :doc
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
# gem 'debugger', group: [:development, :test]
group :development do
gem 'spring'
end
group :assets do
# NTS sprockets-rails claims to include this gem 'sass-rails'
# NTS sprockets-rails claims to include this gem 'coffee-rails', '~> 4.0.1'
gem 'sprockets-rails', '~> 2.2.0', :require => 'sprockets/railtie'
gem 'uglifier', '>= 1.3.0'
end
group :test do
gem 'minitest-reporters', '1.0.5'
gem 'mini_backtrace', '0.1.3'
gem 'guard-minitest', '2.3.1'
end
group :production do
gem 'rails_12factor', '0.0.2'
gem 'unicorn', '4.8.3'
end
在未加载Google Map API DOM侦听器且未安装Turbolink的情况下,尝试了瘦版应用。阿贾克斯的作品。重新加入Google Map API,ajax仍然可以使用。重新添加了Turbolink,ajax损坏了。
通过执行以下操作,我得到了Turbolinks和DOM侦听器回调的工作:
将Rails更新到4.2.0(无论如何需要这样做)
在gemfile中添加了jquery_rails及其运行时依赖项
gem'jquery-rails','〜> 4.0.3'
gem'rails-dom-testing','〜> 1.0.5'
gem'railties','〜> 4.2.0'
宝石'thor','〜> 0.19.1'
gem'nokogiri'
gem'activesupport','〜> 4.2.0'
Application.js
// =需要jquery
// =需要jquery.turbolinks
// =需要jquery_ujs
// =需要引导
// =需要turbolinks
// = require_tree。
Javascript钩子
destroy.js
// Ajax handlers, destroy a following relationship
$("#follow_form").html("<%= escape_javascript(render('/users/follow')) %>");
$("#followers").html('<%= @user.followers.count %>');
create.js
// Ajax handler, create a following relationship
$("#follow_form").html("<%= escape_javascript(render('/users/unfollow')) %>");
$("#followers").html('<%= @user.followers.count %>');
Turbolink是您需要做出明智使用决定的事情。它具有优点和缺点。有真正的问题,但我暂时坚持下去。
添加发布另一个问题解答,以更深入地了解这个棘手的问题:Rails 4:有人遇到过jquery_ujs破坏了回调URL,从而中断了Ajax屏幕更新吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句