Tag: ajax

Google Maps For Rails – 仅在搜索结果发生变化时通过ajax更新标记

我一直在编写一个小应用程序,有很多来自stackoverflow的帮助。 基本前提很简单,我在网络上看到了这种function:我试图将一个位置列表绘制到可搜索/可平移的谷歌地图上。 位置存储在后端,控制器将这些位置提供给视图。 涉及AJAX是因为我不想重新加载整个页面。 以下是场景:a)用户通过zipcode搜索位置=>地图加载新位置,搜索获取发送到服务器并映射加载任何标记,如果有任何设置半径,地图设置默认缩放级别; b)用户平移/缩放=>地图停留在用户离开的任何地方,使用视口边界框的搜索被发送到服务器并映射结果。 地图将在初始加载时默认为西雅图,它尝试的第一件事是地理定位用户… 使用gmaps4ails wiki,主要是这个问题答案的修改版本: Google Maps for Rails – 用AJAX更新标记我已经非常接近了。 实际上,这很有效。 这是它的样子: sightings_controller.rb def search if params[:lat] @ll = [params[:lat].to_f, params[:lng].to_f] @sightings = Sighting.within(5, origin: @ll).order(‘created_at DESC’) @remap = true elsif search_params = params[:zipcode] geocode = Geokit::Geocoders::GoogleGeocoder.geocode(search_params) @ll = [geocode.lat, geocode.lng] @sightings = Sighting.within(5, origin: @ll).order(‘created_at DESC’) @remap = true […]

在Rails 4中发送带有远程true的表单

我有一个用于更新图像的表单 true do |f| %> 行动有 respond_to do |format| format.js format.html end 但我收到以下错误 ActionView::MissingTemplate – Missing template users/update_image, application/update_image with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :coffee]}. 我没有update_image.html.erb模板,但是从错误中我得知请求不是以js格式发送的 我错过了什么?

Rails 4:如何通过AJAX更新基于另一个collection_select的collection_select?

问题:我需要根据组织集合的选择过滤单位集合。 选择组织后 , 单位下拉菜单应刷新以仅显示属于知情组织的单位 。 我检查过这些问题: Rails表单:使用AJAX基于其他collection_select值更新collection_select选项 UJS,AJAX,Rails 4,form_for collection_select将值传递给方法并将值返回到表单 带有collection_select的rails中的ajax 如何添加onchange事件以在rails中选择标记 Rails表单:使用AJAX基于其他collection_select值更新collection_select选项 Rails form_for collection_select忽略select_tag接受的远程ajax调用 远程选择,控制器需要更多表格数据 这些文件: http://guides.rubyonrails.org/form_helpers.html http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select 到目前为止这是我的代码: 楷模 class Organization < ActiveRecord::Base has_many :units has_many :projects, through: :units end class Unit < ActiveRecord::Base belongs_to :organization has_many :projects end class Project < ActiveRecord::Base belongs_to :organizaton has_one :organization, through: :unit end 查看 […]

使用RubyOnRails上传HTML5 FormData文件

我使用这个脚本在Rails 3.2.8应用程序中使用HTML5 FormData上传文件(逐个)。 http://jsfiddle.net/RamPr/ $(‘.uploader input:file’).on(‘change’, function() { $this = $(this); $(‘.alert’).remove(); $.each($this[0].files, function(key, file) { $(‘.files’).append(” + file.name + ”); data = new FormData(); data.append(file.name, file); $.ajax({ url: $(‘.uploader’).attr(‘action’), contentType: ‘multipart/form-data’, type: ‘POST’, dataType: ‘json’, data: data, processData: false }); }); }); 但是当我上传文件时,我在控制台中收到此错误: webrick/server.rb:191:in `block in start_thread’ ERROR ArgumentError: invalid %-encoding (“filename.jpeg” Content-Type: image/jpeg […]

Rails ajax请求只加载视图html

我正在尝试使用rails和jQuery创建一个支持AJAX的网页。 我遇到的问题是,当我尝试使用jQuery的AJAX方法将视图加载到div中时,我将使用视图返回我的应用程序布局。 有没有办法只检索视图数据,如果它是一个AJAX请求,但加载我的应用程序布局,如果它不是一个AJAX请求? 这是我调用的控制器方法: def new @blog = Blog.new respond_to do |format| format.html # Goes to the new.html.erb view. format.xml { render :xml => @blog } end end 谢谢您的帮助。

counter_cache没有在ajax中更新

我有一个运行类似链接的js代码(带有ajax) – 链接更改为不同(使用正确的路由和方法),并且我希望也更新模型中的列的likes_count。 问题是价值没有得到更新。 没有Ajax(整页加载) – 值正常 #create.js.erb $(“#like_link”).html(“”) $(“#likes”).html(”) #relevant html snippet from the view Total likes: #model – like.rb class Like true end 使用时 $(“#likes”).html(”) 它工作但缺少counter_cache的观点

在ajax中呈现的Rails 3表单获取与text_fields值混合的html

我用这种方式通过ajax渲染表单: $(‘#details’).html(“”); 感谢d11wtq! 现在的问题是这个表单是一个渲染,一些html作为文本! 虽然text-feild和text-area中的所有值都是正确的。 这是表格 true, :html => { :’data-type’ => ‘html’, :id => ‘new-note-form’ } do |f| %> prohibited this note from being saved: @note.wine.id %> “60×12” %> 因此,当渲染此表单时,在块 Comes Red Wine div>之后打印出来。 在文本字段中有值和一些html。 在文本区域也一样。 插入的html代码总是一些,所以它不是随机的。 谢谢你的时间和帮助:)

Rails未知格式错误(HTML和JS)

我目前正在使用Rails 4,我有3个控制器执行以下操作: respond_to do |format| format.html format.js end 其中两个目前工作正常,但第三个控制器抱怨在ArticlesController#草稿中的ActionController :: UnknownFormat。 这是有问题的控制器: def drafts @user = current_user @drafts = @user.articles.paginate(page: params[:page], per_page: 5).draft_and_in_order respond_to do |format| format.html format.js end end 其他两个控制器包含格式片段的动作看起来相似。 它们都使用相同的ajax调用,所以它可能不是那样,并且调用只是对当前页面的简单默认ajax调用(例如) $.ajax({ }); 并且触发文章#rarafts action在我的rails服务器中看起来很好,因为它发出了正确的GET响应。 我认为可能是这种情况的唯一区别是文章#strafts在它之前有一个before_actions: before_action :logged_in_user, only: [:new, :create, :update, :destroy, :drafts] before_action :correct_user_format, only: [:new, :drafts] 因为它们包含一些redirect_to: def correct_user_format user = […]

作为可投票的Ajax投票大小不更新Rails

我在我的rails 4 app上使用这些行为作为可投票的gem。 我终于使用ajax工作了,所以当用户投票时页面不会刷新,但是,在刷新页面之前,vote.size不会更新。 这是我的控制器动作: def upvote @article = Article.find(params[:article_id]) @subarticle = @article.subarticles.find(params[:id]) session[:voting_id] = request.remote_ip voter = Session.find_or_create_by(ip: session[:voting_id]) voter.likes @subarticle respond_to do |format| format.html {redirect_to :back } format.json { render json: { count: @subarticle.get_upvotes.size } } end end 并查看: Helpful $(‘.vote’) .on(‘ajax:send’, function () { $(this).addClass(‘loading’); }) .on(‘ajax:complete’, function () { $(this).removeClass(‘loading’); }) […]

如何基于combobox调用控制器操作?

我正在使用Ruby on Rails 3.2.2和ruby 1.9。 我有一个模型招标,其中一个属性是状态。 在索引页面上,第一次加载时,它会根据已登录的用户公司显示招标数据(它还会显示状态)。 我希望有一个combobox的filter,它将包含所有状态(Initiated,Closed,Won ..etc),所以当用户更改filter时,我想通过将状态提交给控制器来更改表​​数据这将根据状态过滤掉投标。 我怎样才能做到这一点? 如何使用Ajax(因为唯一改变的是表数据而不是整个页面)? 除了状态之外,我还有不同的过滤选项,例如bid_amount(也是其中一个属性)。 如何将bid_amountfilter按数据与状态组合(即,如果用户想要显示出价金额为b / n 10,000-100,000的已关闭状态)。 在控制器上编写查询时我不会有问题,但我不知道如何在视图中使用它。 由于ruby没有像Java这样的Enum,我还从模型类中的数组加载这些状态。 这是一个很好的方法吗? 任何建议也将不胜感激。