Tag: ajax

rails 4- 401未经授权的error handling

我正在制作一个简单的quora,如问题答案网站登录使用设计。 我试图使用ajax在问题索引本身中呈现表单。 一切似乎工作正常,但没有用户登录时服务器说401未经授权已完成,似乎没有任何事情发生。 控制台响应: Started GET “/questions/new” for 127.0.0.1 at 2017-07-18 18:30:54 +0530 Processing by QuestionsController#new as JS Completed 401 Unauthorized in 1ms (ActiveRecord: 0.0ms) controller: def new @question = Question.new(:user=>current_user) respond_to do |format| format.js {} end end def new @question = Question.new(:user=>current_user) respond_to do |format| format.js {} end end 我知道这是因为before_action :authenticate_user! 在问题控制器中。 网络响应中的Chrome控制台也说“您需要先登录或注册才能继续”。 此外,我尝试了byebug,但后来才知道流程从未达到新的行动。 […]

使用ajax部分修复渲染

我试图在另一个部分渲染,像这样: $(“#cobran_”).fadeOut(500, function(){ $(this).remove(); $(“.child”).remove(); $(“#container_cobranza”).html(” ‘cobranza/cobran’, cobranza: cobran))%>”); }); 但我得到这个错误: ActionView :: Template :: Error(未定义的局部变量或方法cobran’ for #<#:0x83cb1500> Did you mean? cobran_url): 1: <tr id="cobran_”> 2: 3: 4: app/views/cobranza/_cobran.html.erb:1:in _app_views_cobranza__cobran_html_erb__36360536__1042659538’app / views / detallecob / create.js.erb:12:在`_app_views_detallecob_create_js_erb__76211164__1041949938′ 不识别变量“cobran”因为在视图中以这种方式进行渲染: 而在部分中,像这样的“cobran”的单一“cobranza”: <tr id="cobran_”> 我该如何解决这个问题? 谢谢

我如何使用rspec来测试Ajax请求?

我试图在rspec中测试一个ajax请求,但我不太确定如何在这一点上做它无关紧要,如果它是rspec或capybara,我只是想让测试通过,任何建议都非常感谢 describe “Cart”, js: true, search: true do let(:product) { create(:product) } let(:variant) { create(:variant, :product => product, :count_on_hand => 1, :sku=>”YIG01276″) } let(:flash_sale) { create(:flash_sale) } let(:user) { create(:user) } before do flash_sale.variants < 0 end end

best_in_place gem,在没有页面重新加载的情况下查看不显示更新的编辑

我将best_in_place gem添加到我的项目中,并且更新在页面重新加载发生之前不会生效。 我可以在我的节目视图中看到它闪烁,但它需要重新加载页面。 为什么是这样? 我的名单控制器: respond_to :html, :xml, :js def update @list = List.find(params[:id]) @list.update_attributes(params[:list]) respond_with(@list, :location => list_url(@list)) end 我的名单显示视图 – 我的gem文件 – group :assets do gem ‘sass-rails’, ‘~> 3.2.3’ gem ‘coffee-rails’, ‘~> 3.2.1’ gem ‘best_in_place’ # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem ‘therubyracer’, :platforms => :ruby gem ‘jquery-ui-rails’ gem ‘uglifier’, ‘>= […]

Rails ajax:成功回调不会在生产中触发

我的ajax回调没有在我的生产环境中触发。 但是,它们在开发过程中没有错误。 为了讨论起见,我会简化一些事情。 假设我有一个使用remote: true的链接remote: true : foos_controller.rb class FoosController < ApplicationController def new @foo = Foo.new render partial: 'form' if request.xhr? end end 使用Chrome的控制台,我绑定到ajax:success : $(document).on(“ajax:success”, “#new-foo”, function() { console.log(“success!”); }); 在开发中,这很好用; 我得到了“成功!” Chrome控制台中的消息。 然而,在生产中,却没有。 请求正在进行,响应是部分form ,但回调不会触发。 有任何想法吗? PS。 以下也不起作用。 $(“#new-foo”).bind(“ajax:success”, function() { console.log(“success!”); }) config/environments/production.rb没有变化。 编辑 :结果是ajax:当我点击生产中的链接时会触发错误。 $(document).on(“ajax:error”, “#new-foo”, function() { console.log(“error”); }); […]

使用Ajax / jQuery进行更新操作,无需重新加载页面

我有一个current_user可以查看的个人资料页面,在该页面上它将列出他们已经RSVP的事件,并且在每个事件下面都会有一个表单,如果他们愿意,可以将RSVP状态更新为不同的东西。 这是他们可以选择的三种可能的RSVP状态的单选按钮(“参加”,“感兴趣”,“不感兴趣”)。 我想这样做,以便在单击单选按钮时不重新加载页面,这会更新RSVP状态。 这是表格现在的样子。 “this.form.submit();” %> “this.form.submit();”%> “this.form.submit();” %> 用户模型: def rsvp_for_event(event) Rsvp.where(:event_id => event.id).first end UPDATE 1)我得到的错误是ActionController::UnknownFormat in RsvpsController#update 2)表单的HTML看起来像这样 对于这样的每个按钮 。 我在).on(‘click部分 – 表格的update类,按钮的radio类型等).on(‘click引用了什么?这里有经验法则吗? 3)URL包含两个任意参数, user_id和rsvp_id 。 如何在AJAX请求和Rails控制器的数据部分中正确地处理它们? RsvpsController def update #is this part sufficient? respond_to do |format| format.html format.js end end views / rsvps / update.js.erb,是否应该在assets / javascripts中有另一个文件? $(document).on(‘ready’, function() { //does […]

在ajax获取请求后,rails渲染部分

我在我的Rails 3应用程序中使用Jvectormap。 当我点击它时,我想隐藏地图并使用有关所选国家/地区的信息可视化部分。 我处理地图点击,然后向服务器发送GET请求。 users.js.coffee.erb $ -> $(“#world-map”).vectorMap onRegionClick: (event, code) -> $(‘#world-map’).hide(1000) $.get(‘/users/statistics’, {code: code}); $(‘#statistics’).show(1000) users_controller.rb def statistics @country = Country.find_by_two_letter_code((params[:code]).downcase) render :nothing => true 结束 这是回应 在2013-06-02 17:54:49 +0200开始获取127.0.0.1的GET“/ users / statistics?code = ET” 由UsersController处理#statistics为/ 参数:{“code”=>“ET”} 国家负荷(0.2ms)选择“国家”。* FROM“国家”地点 “countries”。“two_letter_code”=’et’LIMIT 1 渲染文本模板(0.0ms) 2ms完成200 OK(浏览次数:0.6ms | ActiveRecord:0.2ms) 和观点 show.html.erb {:country => @country} %> _statistics.html.erb […]

将Ajax POST请求的参数格式化为Rails控制器 – 用于jQuery-UI可排序列表

我正在使用jQuery-UI可排序连接列表。 我将连接列表的顺序保存到Rails服务器。 我的方法是获取每个列表项的列表ID,列ID和索引位置。 我想将其包装到一个对象中,该对象可以作为参数传递回Rails控制器以保存到数据库中。 理想情况下,我希望像这样格式化参数: Parameters: {“Activity”=>[{id:1,column:2,position:1},{id:2,column:2,position:2} ,…]} 如何正确格式化我在此Ajax POST请求中传递的参数? 现在,通过以下方法,我传递Parameters: {“undefined”=>””} 这是我当前的jQuery代码(Coffeescript),它不起作用: jQuery -> $(‘[id*=”day”]’).sortable( connectWith: “.day” placeholder: “ui-state-highlight” update: (event, ui) -> neworder = new Array() $(‘[id*=”day”] > li’).each -> column = $(this).attr(“id”) index = ui.item.index() + 1 id = $(“#” + column + ” li:nth-child(” + index + “) “).attr(‘id’) passObject={} passObject.id […]

带有Rails的AJAX – 缺少模板

我正在尝试让AJAX在我的应用程序上工作,并得到一个奇怪的ActionView::MissingTemplate错误。 我有这个作为我的tasks#create方法: def create @task = Task.new(task_params) @task.user_id = current_user.id if @task.save respond_to do |format| format.js format.html end # redirect_to tasks_path, notice: ‘Task was successfully created.’ else render :new end end 这是我的views/tasks/create.js.erb : $(“#onetime-todo”).html(“”) $(“#onetime-done”).html(“”) $(“#daily-todo”).html(“”) $(“#daily-done”).html(“”) $(“#weekly-todo”).html(“”) $(“#weekly-done”).html(“”) $(“#monthly-todo”).html(“”) $(“#monthly-done”).html(“”) 这在我的tasks/index.html.erb : …. One-Time Tasks Daily Weekly Montly 谁能看到我哪里出错了? 这似乎是一个奇怪的错误,因为我有一个创建模板。 我的服务器日志显示如下: Started POST “/tasks” […]

在Rails中使用ajax渲染查询

我需要有以下问题的帮助或指导。 每次在搜索表单中更改时,我都使用ajax从数据库重新加载动态查询。 目的是根据搜索表单中选择的参数动态加载N个寄存器。 我有这个代码,允许我对数据库进行查询并在索引中打印结果。 代码正在运行,最后每次迭代都会在查询结果中为每个注册表打印一个“square”()。 控制器: def clientsjson @search = Client.search(params[:q]) @clients = @search.result respond_to do |format| format.json { render :json => @clients } end end Js文件 $(document).ready(function() { $( “.searchupdate” ).change(function() { $.getJSON(“/client/clientsjson?”+$(‘#client_search’).serialize(), function (data) { var $ul = $(”); $ul.append(data.map(function(data) { var $ini= ” var $inicio=” var $titulo=”+data[‘name’]+” var $titulo2=’City, Country’ var $titulo3=’Idioma:’ […]