2012-05-18 42 views
1

所以我有一个注销的链接,我想用ajax来处理。Rails 3.1 UJS link_to remote true必须重新加载页面才能工作

<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("https://stackoverflow.com/users/sign_out", {_method:"delete"}, function(data){ 
    setNotice(data); 
    }); 
}); 


}); 

回答

0

也许尝试添加您的注销路径链接。现在它看起来像href属性被设置为一个散列。从我记得,jquery-rails使用href属性来确定请求的URL。

相关问题