我想通過我的咖啡腳本使用當前用戶。 但是,如果我嘗試在我的咖啡腳本中使用current_user
,我會在瀏覽器的控制檯中獲取未定義的變量current_user。 有沒有什麼方法可以在咖啡腳本中訪問它? 我究竟想做的就是如下:在咖啡腳本中訪問導軌變量
current_user.updated_at < Date.now().getTime()
這可能是一個愚蠢的問題,但無論如何,我需要它來實現它在我的Rails應用程序。
任何幫助將不勝感激。提前致謝。 :)
我想通過我的咖啡腳本使用當前用戶。 但是,如果我嘗試在我的咖啡腳本中使用current_user
,我會在瀏覽器的控制檯中獲取未定義的變量current_user。 有沒有什麼方法可以在咖啡腳本中訪問它? 我究竟想做的就是如下:在咖啡腳本中訪問導軌變量
current_user.updated_at < Date.now().getTime()
這可能是一個愚蠢的問題,但無論如何,我需要它來實現它在我的Rails應用程序。
任何幫助將不勝感激。提前致謝。 :)
咖啡腳本轉換爲JavaScript並運行在瀏覽器上。你想要做的是將current_user.updated_at渲染成HTML中的節點,然後使用咖啡腳本來提取該值。
感謝您的回覆。但是可以用其他方式嗎? – Vishal
對於原始的JavaScript + ERB
<script type="text/javascript">
var my_foo = <%= some_ruby_expression %>
</script>
例如
<script type="text/javascript">
var user_name = "<%= current_user.name %>";
</script>
除了var
關鍵字,我相信這是一個有效的coffeescript代碼。
順便說一句,這真的是你要求的嗎? - 我不知道 - ))
UPDATE
current_user
是紅寶石/ active_record對象。您可以將它分配給一個JavaScript變量,但不能像您在Ruby中那樣使用。
但是,下面的代碼可能會給你一些想法。我創建了一個rails項目,並搭建了一個頁面模型。
<p id="notice"><%= notice %></p>
<p>
<strong>Title:</strong>
<%= @page.title %>
</p>
<p>
<strong>Email:</strong>
<%= @page.email %>
</p>
<p>
<strong>Comments:</strong>
<%= @page.comments %>
</p>
<script type="text/javascript">
var mypage = '<%= raw @page.to_json %>'; // attention to single quotes
console.log(mypage);
</script>
<%= link_to 'Edit', edit_page_path(@page) %> |
<%= link_to 'Back', pages_path %>
然後,你可以解析和使用它作爲一個普通的JavaScript對象。下圖顯示,我是如何做到的。
更新#2
做在CoffeeScript的文件。
window.onload = ->
myvar = '<%= raw @page.to_json %>'
myvarAsObj = JSON.parse(myvar)
do_something_with myvarAsObj
return
Javascript文件是(或多或少)將由瀏覽器執行的靜態文件。我不知道你是否曾經在生產中部署過Rails應用程序。您將運行命令bin/rake assets:precompile
,該命令將生成一個(或多個)大量JavaScript文件。那麼你現在如何找出當前用戶呢?根本沒有HTTP請求,那麼怎麼會有用戶呢?
因此,要做到這一點,你既可以在當前用戶寫入HTML節點,然後通過JavaScript(CoffeeScript中)(這在我看來是最好的方式)看了一遍,或者你可以打印一個腳本標記成您的視圖包含用戶所需的內容。
你可以試試看這個gem https://github.com/gazay/gon。我自己並沒有使用過,但其他人偶爾也會推薦它。 – Iceman
什麼是代碼行? :哦,我真的不明白你想做什麼..左邊是Ruby代碼,右邊是Javascript?! ლ(ಠ益ಠლ) – siegy22