1

我的注册有一个 ajax 调用,但这最终会击中控制器两次。我使用调试器对此进行了测试,所以我确信它会命中两次。为什么这样做?

控制器的代码是这样的:

def create
  @user = User.new(params[:user])
  if @user.save
    sign_in(@user)
  end
end

这将转到 create.js.erb,就是这样。

<% if current_user %>
  $('.sign-up').remove();
  $('.sign-in').remove();
  $('div.top a.disabled').remove();
  $('div.top').append('<a class="bookmarklet" href="javascript:<%= bookmarklet_caller_js %>">DRAG ME</a>');
  $('nav').append('<%= j render "layouts/signed_in" %>');
  $('nav').find('div.alert').remove();
  $('nav').prepend('<div class="alert">Successfully signed up');
<% else %>
  $('nav').prepend('<div class="alert">Error in signing up');
<% end %>

呼叫按预期工作。但是在用户注册成功时,它会运行两次循环,因此它会注册用户,但错误消息会被失败的消息覆盖。

知道为什么会发生这种情况吗?

我的公共资产文件夹。

Shivams-MacBook-Pro:Resource_It shivamd$ cd public/assets/
application-6bff97b14b282b79979adb4ef1e76e97.css  
application-  f41a09e268b5715d39683efc0ea7d95f.css.gz 
jquery.min-6c267bfd2b3f36e6edccb2e584934c1c.map
application-6bff97b14b282b79979adb4ef1e76e97.css.gz 
application.css                           
jquery.min.map
application-8dd88800030e4c48315ff31ade093d00.css     
application.css.gz                        
manifest.yml
application-8dd88800030e4c48315ff31ade093d00.css.gz  
application.js                                       
rails-a3386665c05a2d82f711a4aaa72d247c.png
application-dc9a8b23a4c79a4934d3d64cf1146042.js      
application.js.gz                                    
rails.png
application-dc9a8b23a4c79a4934d3d64cf1146042.js.gz   
grey-pattern-f166bfdb393cc4dd8c23d00665ba7da9.png    
application-f41a09e268b5715d39683efc0ea7d95f.css     
grey-pattern.png             

我的ajax调用是用remote true完成的

4

0 回答 0