Rails 3.1 UJS link_to remote true必须重新加载页面才能工作

时间:2012-05-18 17:15:52

标签: ruby-on-rails-3 jquery

所以我有一个注销链接,我想使用ajax来处理。

<li><%= link_to('Logout', "#", :method => :delete, :remote => true, :class => 'logout') %></li>

但是,每次登出工作时都必须重新加载页面,然后才能重新加载部分页面。登录工作绝对正常。在没有页面重新加载的情况下单击注销链接时,由于某种原因它只会删除到localhost,它不会删除到/ users / sign_out。然后页面需要另一次重新加载$(#user_login_box)进行更新。这只是注销。

$(document).ready(function() {

 function setNotice(data) {

 var $flash = $("<div>",{
  'class': 'alert alert-success',
  'html': data.data.message 
 });

var $link  = $("<a>",{
  'html': 'x',
  'class': 'close',
  'href': '#',
  'data-dismiss': 'alert'
}).data("dismiss","alert").prependTo( $flash );


$('#account').html(function(){
 return data.login ? data.email : "Account" ;
});
$('.row').prepend($flash);
$('#user_login_box').html(data.content);    
}


$('form#sign_in').bind('ajax:success', function(e, data, status, xhr) {
  console.log(data);
 if(data.success) { 
   setNotice(data)

} else {
  $('#status').html(data.data.message);

}
});

 $(".logout").on("click", function(e){
   e.preventDefault();
  $.post("/users/sign_out", {_method:"delete"}, function(data){
   setNotice(data);
  });
 });


});

1 个答案:

答案 0 :(得分:0)

也许尝试将您的退出路径添加到该链接。现在看起来href属性设置为哈希。根据我的记忆,jquery-rails使用href属性来确定请求的URL。