1

サインアップ用の ajax 呼び出しがありますが、これによりコントローラーが 2 回ヒットします。デバッガーを使用してこれをテストしたので、2 回ヒットするはずです。なぜこれを行うのですか?

コントローラーのコードは次のとおりです。

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 %>

通話は意図したとおりに機能します。ただし、ユーザーのサインアップが成功すると、ループが 2 回実行されるため、ユーザーはサインアップされますが、エラー メッセージは失敗したメッセージによって上書きされます。

なぜこれが起こるのでしょうか?

私のパブリック アセット フォルダー。

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呼び出しはリモートtrueで行われています

4

0 に答える 0