我有一個網站,我需要一個JavaScript版本的「當前用戶」對象以及ruby版本。我一直在分配這些變量做這樣的事情...我如何有條件地將ruby變量賦值給javascript變量?
Application Controller:
def get_user
begin
@current_user = User.find(session[:user_id]) if session[:user_id]
@current_user_json = @current_user.to_json
rescue
session.delete(:user_id)
@current_user = nil
@current_user_json = {}
end
end
Web Page:
var current_user = null;
current_user_json = '<%= @current_user_json %>';
if(current_user_json != ''){
current_user = current_user_json.user;
}
即使有當前用戶,我得到的當前用戶是未定義的。可能是因爲我將current_user_json
分配在單引號附近。但是,如果我不把它周圍的單引號,我總是在沒有用戶登錄一個JavaScript錯誤,因爲語法無效 -
current_user_json = ;
我想我只是看着這個完全錯誤並且必須有更好的方法。鑑於這可能是一件常見的事情,我想獲得其他人關於如何在JavaScript中創建一個與Ruby對象相同的對象的意見。
除「無」情況下,JSON不能只是空,或者作爲問題筆記會出現Javascript語法錯誤。它應該像'{user:null}'一樣。 – Pointy 2010-06-13 16:27:58
尖尖的 - 你的增加使這個答案工作。謝謝 – Tony 2010-06-13 16:35:39