JS请求连续两次被调用

问题描述

| 我正在研究Ruby on Rails教程。我有异步跟随按钮工作。有趣的是,当我单击按钮时,每个javascript调用都连续被调用两次。关于我如何仅发送一个请求的任何想法?这是我的日志
Started POST \"/tag_user_relationships/123\" for
127.0.0.1 at 2011-06-13 21:18:59 -0700   Processing by TagUserRelationshipsController#destroy as JS   Parameters: {\"utf8\"=>\"✓\",\"authenticity_token\"=>\"goedvibRxKtDRiAufp1ThWJP0rRBU2cMH2xp7qodKws=\",\"commit\"=>\"Unfollow\",\"id\"=>\"123\"}   User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1   TagUserRelationship Load (0.2ms)  SELECT `tag_user_relationships`.* FROM `tag_user_relationships` WHERE `tag_user_relationships`.`id` = 123 LIMIT 1   Tag Load (0.2ms)  SELECT `tags`.* FROM `tags` WHERE `tags`.`id`
= 9 LIMIT 1   TagUserRelationship Load (0.3ms)  SELECT `tag_user_relationships`.* FROM `tag_user_relationships` WHERE `tag_user_relationships`.`tag_id` = 9 AND (`tag_user_relationships`.user_id
= 2) LIMIT 1   sql (0.1ms)  BEGIN   AREL (0.2ms)  DELETE FROM `tag_user_relationships` WHERE `tag_user_relationships`.`id` = 123   sql (0.4ms)  COMMIT   sql (0.4ms)  SELECT COUNT(*) FROM `users` INNER JOIN `tag_user_relationships` ON `users`.id = `tag_user_relationships`.user_id WHERE ((`tag_user_relationships`.tag_id = 9))   sql (0.3ms)  SELECT COUNT(*) FROM `tags` INNER JOIN `tag_user_relationships` ON `tags`.id
= `tag_user_relationships`.tag_id WHERE ((`tag_user_relationships`.user_id = 2)) Rendered tag_user_relationships/_form.js.erb (15.8ms) Rendered tags/_follow.html.erb (2.1ms) Rendered tag_user_relationships/destroy.js.erb (20.3ms) Completed 200 OK in 138ms (Views: 28.1ms | ActiveRecord: 2.3ms)


Started POST \"/tag_user_relationships/123\" for
127.0.0.1 at 2011-06-13 21:18:59 -0700   Processing by TagUserRelationshipsController#destroy as JS   Parameters: {\"utf8\"=>\"✓\",\"id\"=>\"123\"}   User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1   TagUserRelationship Load (0.2ms)  SELECT `tag_user_relationships`.* FROM `tag_user_relationships` WHERE `tag_user_relationships`.`id` = 123 LIMIT 1 Completed 404 Not Found in 70ms

ActiveRecord::RecordNotFound (Couldn\'t find TagUserRelationship with ID=123): app/controllers/tag_user_relationships_controller.rb:14:in `destroy\'

Rendered /Users/me/.rvm/gems/ruby-1.9.2-p136@rails3tutorial/gems/actionpack-3.0.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.0ms) Rendered /Users/me/.rvm/gems/ruby-1.9.2-p136@rails3tutorial/gems/actionpack-3.0.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (153.6ms) Rendered /Users/me/.rvm/gems/ruby-1.9.2-p136@rails3tutorial/gems/actionpack-3.0.8/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (160.2ms)
这是我的看法
$(\"#<%= \"follower_info#{@tag.id}\" %>\").html(\"<%=escape_javascript(pluralize(@tag.followers.count,\'follower\'))%>\");     
var link = $(\'<a>\').attr(\'href\',\"<%=user_tags_path(current_user) %>\").text(\"<%= escape_javascript(pluralize(current_user.beats.count,\'tag\')) %>\");
$(\"#<%= \"user#{current_user.id}_following\" %>\").html(link); $(\"#<%= \"follow_form#{@tag.id}\" %>\").html(\"<%= escape_javascript(\"#{render(\'tags/unfollow\',:tag => @tag)}\").html_safe %>\");
还有我的控制器
  def create
    @tag = Tag.find(params[:tag_user_relationship][:tag_id])
    current_user.follow_tag!(@tag)
    respond_to do |format|
      format.html { redirect_to @tag }
      format.js
    end   
  end
    

解决方法

        我最近也遇到过同样的问题。您是否有可能安装了ajax gem并将jquery代码包括在Javascripts文件夹中?如果是这样,将拨打两次电话。