2011-05-15 41 views
2

我有一個控制器操作,預計將由jquery調用。這裏的電話:如何將設計認證細節傳遞給軌道控制器操作?

$.ajax({ 
     url: "/comments.json", 
     type: "POST", 
     dataType: "json", 
     data: { 
      commentable_id: $("#addCommentForm").attr("data-site-update-id"), 
      commentable_type: 'SiteUpdate', 
      content: $("#addCommentForm textarea#content").val() 
     }, 
     success: function(comment) { 

     } 
    }); 

它工作得很好,但由於某種原因,「current_user」是控制器內的零。如果我強制authenticate_user!作爲過濾器,rails會返回一個HTTP Unauthorized。

如何傳遞驗證細節,以便該控制器操作可以與設計一起使用?更好的是,有什麼辦法可以讓這個透明?我不想一遍又一遍地通過每個Ajax請求的驗證細節...

在Java中,一旦用戶登錄...他們已登錄。您沒有通過任何URL到網址了 - 它在某個地方的會話中,而且都是透明的。有沒有辦法我可以用軌道做到這一點?我不想把重點放在這些細節上。

感謝

編輯:解決的辦法就是添加以下到您的JavaScript的地方:

$(document).ajaxSend(function(e, xhr, options) { 
    var token = $("meta[name='csrf-token']").attr("content"); 
    xhr.setRequestHeader("X-CSRF-Token", token); 
}); 

回答

2

設計確實保持會話。

This可能是你的問題。

+0

這完全似乎是問題......但不幸的是,這些解決方案都沒有工作。可以使用jQuery的鐵軌是問題嗎?我完全失敗了:(看來很多事情在rails中很容易,但是如果遇到問題,實際上可能很奇怪,很難弄清楚發生了什麼,至少我們知道問題是什麼 - 會話正在丟失,就像發生在其他人身上一樣 – egervari 2011-05-15 08:06:30

+0

ahh,我不得不向xhr請求添加令牌 – egervari 2011-05-15 08:15:22

+0

嘿,你能準確告訴我你是如何解決這個問題的嗎?我有類似的問題。 – rookieRailer 2011-09-08 04:28:16

相關問題