1

そのため、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);
  });
 });


});
4

1 に答える 1

0

おそらく、サインアウトパスをリンクに追加してみてください。現在、href属性がハッシュに設定されているようです。私が覚えていることから、jquery-railsはhref属性を使用してリクエストのURLを決定します。

于 2012-05-18T20:57:10.710 に答える