サインアップ用の 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で行われています