我的注册有一个 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完成的