Tag: ajax

永远不要渲染布局以响应xhrs

大多数时候,当请求来自AJAX时,我不想呈现布局。 为此我一直在写render :layout => !request.xhr? 经常在我的控制器动作中。 我该如何将其设为默认值 ? 也就是说,我希望能够写作 def new Post.find(params[:id]) end 并具有function def show Post.find(params[:id]) render :layout => !request.xhr? end (我很乐意在极少数情况下手动指定布局,我想使用它。)

ajax调用后,Rails不显示flash消息

我正在编写一个rails 4.0.2应用程序,并且我试图在AJAX事件之后在我的视图中显示Flash通知。 在我看来,我会显示一个日历,其中包含用户可以点击的日期。 当他们这样做时,我通过onclick事件处理程序触发一个AJAX事件,该处理程序更新我的模型,添加或删除记录。 触发事件后,我完成页面刷新以显示更新的结果。 我发现在JS点击事件期间我必须刷新页面才能使视图正确更新。 仅在控制器中重定向或渲染是不够的。 所以,为此,我在控制器中设置了Flash通知… def set_conflicts @conflict = @member.conflicts.for_date(params[:date]).first if @conflict @conflict.destroy else conflict_date = Date.parse(params[:date]) unless Conflict.create( month: conflict_date.month, day: conflict_date.day, year: conflict_date.year, member: @member ) flash[:alert] = ‘Oops, there was a problem updating conflicts’ end end flash[:notice] = ‘This is a test!’ redirect_to manage_member_conflicts_path(@member) end …并在我的application.haml中包含以下flash显示逻辑… … %body = […]

Rails AJAX:我的部分需要一个FormBuilder实例

所以我在我的Rails应用程序中有一个表单,它使用自定义FormBuilder为我提供一些自定义字段标记 MyFormBuilder do |f| %> […] “staff_members/forms/personal_details”, :locals => {:f => f, :skill_groups => @skill_groups, :staff_member => @staff_member} %> […] 现在,这个部分位于一个由AJAX回调替换的forms区域中。 我最终在控制器中响应AJAX请求做的是: render :partial => “staff_members/forms/personal_details”, :locals => {:skill_groups => @skill_groups, :staff_member => @staff_member} 但是,如果我这样做,那么表单就会中断,因为我在form_for中使用的FormBuilder对象不再可用。 有没有办法让我在用于AJAX回调的部分内部使用我的自定义FormBuilder对象?

在Rails中使用Ajax进行error handling3

我正在创建一个简单的演示应用程序,允许用户输入他们的电子邮件地址以注册他们对接收测试版访问权的兴趣。 该应用程序然后向他们发送一封确认电子邮件,让他们知道我们已收到他们的请求。 如果您已经注册以获得测试版发布的通知,那么您就会明白这一点。 我很好奇在使用AJAX时如何处理Rails 3中的错误。 在实现我的respond_to块之前,我有一个表示共享错误的表单。 这是表格。 Sign up to be notified when the beta launches. true do |form| %> @user %> 这里是上述错误的部分原因。 很标准的东西。 控制器动作看起来像这样。 def create @user = User.new(params[:user]) respond_to do |format| if @user.save format.html { redirect_to :back, flash[:notice] = “Thanks for your interest! We’ll let you know when the app is in beta.” […]

data-remote true定义回调

我有一个表格,我想用data-remote=true选项提交。 但是我希望让我的创建操作返回json,然后通过页面上已存在的javascript来处理。 我可以使用form_for标记设置内联回调吗? 与此类似的东西: =form_for @foo,:remote => true, :success => “my_js_stuff” do |f|

Rails / AJAX部分渲染

我创建了一个具有project模型的应用程序。 模型中存储了一些信息,用户可以向project添加注释(使用comment模型)。 在项目的show视图中,我希望用户能够在“info”部分(包含项目信息和“注释”部分(包含项目中写的注释)之间切换。我想使用AJAX。所以我将有两个按钮:信息和评论。 现在我知道如何基于“远程链接”呈现部分,但我还必须找出点击了哪个链接。 到目前为止,我可以在单击一个链接时渲染一个部分,如下所示: // In show.html.haml = link_to(“Information”, :project, :id => “link_one”, :remote => true) = link_to(“Comments”, :project, :id => “link_two”, :remote => true) #partial_window // In show.js.haml $(“#partial_window”).html(“#{j(render(“comments”))}”) 现在,当我点击其中一个链接时,这将呈现_comment.html.haml部分。 我需要知道的是如何检查单击了哪个链接,然后呈现适当的部分: _info.html.haml或_comments.html.haml 。 在此先感谢您的帮助!

如果没有在Rails 3中重新加载,数据库值不会出现在同一页面中

我希望在按收据编号搜索后,值应显示在同一页面中,而不使用Rails3重新加载页面。 但我得到了所有的价值,但不是在同一页面。 有人可以帮我解决这个问题吗? 我在下面解释我的代码。 意见/家庭/ home.html.erb SWARGADWAR, PURI MUNICIPALITY Government of Odisha Dashboard Report (E-RECEIPT) Harischandra Sahayata Yojana Slip {:action => “scan_report” },remote: true do |f| %> Receipt No. Scan : “form-control”,placeholder:”Receipt No. scan”,:onchange => ‘this.form.submit();’ %> Maintained by Oditek Solutions © Swargadwar, Puri Municipality 控制器/ homes_controller.rb: class HomesController “home” end end end scan_report.js.erb $(“#hcsy_block”).html(“”); […]

分页不仅适用于某个查询

我正在使用Kaminari gem使用ajax进行分页 我在同一页面上有三个分页 @all_questions = Question.where.not(id: current_user.question_ids).page(params[:unanswered]).per(1) @wrong = Tracker.where(“user_id = ? AND correct = ?”, current_user, false).page(params[:wrong_answers]).per(1) @answered = Tracker.where(“user_id = ? AND answered = ?”, current_user, true).page(params[:all_answered]).per(1) 而上述实例变量的最后两个正确工作。 第一个当我点击下一个按钮,而我看到在rails控制台中发生ajax请求时,它不会刷新页面。 在我看来 true, :param_name => “unanswered” %> true, :param_name => “wrong_answers” %> true, :param_name => “all_answered” %> 谁知道为什么? HTML true, :param_name => “unanswered” %> @all_questions偏

CORS – 不允许JSONP的跨域AJAX,允许在服务器上使用Origin

我在同一台服务器上有两个独立的应用程序,EmberJS试图对我的后端API进行跨域调用。 我设置了后端API以允许来自该特定来源的跨域请求。 但有没有办法避免在这样的设置中使用JSONP? $.ajax在发送之前阻止跨域请求。 如果没有,CORS有什么意义,我实现了哪些服务器端接受来自我的JS前端源的请求? 编辑 AJAX请求: $.ajax({ url: “api.lvh.me:3000/accounts/login”, data: cred, type: “POST”, xhrFields: { withCredentials: true }, success: function(response){ alert(‘succeeded!’); console.log(response); alert(response); }, failure: function(message){ alert(“failed”); console.log(message); alert(message); } });

fullcalendar将js变量传递给rails,反之亦然

我有一个rails应用程序。 我正在尝试将fullcalendar集成到我的应用程序中。 为了测试,我手动创建了一个事件,该事件在使用as_json发送到浏览器后显示在日历中。 当我尝试移动(更新)事件js工作但由于路由问题我无法将其保存到数据库。 在下面的代码中,我对其进行了硬编码,因此它以这种方式工作。 如果我在AJAX中使用: url: the_event.recipientId + “/events/” + the_event.id然后控制台告诉我:开始POST“/ users / 1/1 / events / 1” – >没有路由匹配。 如果我使用url: “/events/” + the_event.id然后启动POST“/ events / 1” – >没有路由匹配。 所以现在我正在使用从event.rb发送的event.url,但它是硬编码的。 如何在AJAX POST中为current_user设置匹配的URL(为此我还需要从db中找到收件人(用户))和PUT调用? 对于PUT(更新),已经定义了收件人和发件人,因此使用as_json方法将数据发送到浏览器。 这里我的问题是告诉模型(event.rb)current_user是发件人还是收件人,并设置url而不是现在的硬编码。 对于POST来说,这更难了。 浏览器应该弄清楚current_user(发件人)是基于url的还是以某种方式,并且最重要的是它应该能够从db中选择现有用户(收件人)。 我该怎么做第二部分? /用户/ 1 /事件/ JSON [{“id”:1, “recipientId”:1, “senderId”:2, “title”:”cool”, “body”:”hahahhahhhaha”, “start”:”2015-12-15T17:03:05.110-08:00″, “end”:”2015-12-15T19:03:05.111-08:00″, “allDay”:null, “recurring”:false, “url”:”/users/1/events.1″}] //hard coded in […]