簡體   English   中英

Erb標簽中的Javascript變量

[英]Javascript variable inside Erb Tag

我正在嘗試在erb標簽內的js.erb文件中訪問一個javascript變量。 例如

my_variable = window.location.pathname.split(“ /”)[2];

@project = Project.find(my_variable)

因此,有一種方法可以在“查找”助手中傳遞“ my_variable”。

另一種解決方案是獲取URI,將項目提取並將其解析為JSON-在js.erb中重新解析並將文件內容發送給客戶端。

這樣,您不必在服務器上執行JS,並且仍將項目保留在所需的JS文件中。

該答案說明了如何獲取不同Rails版本的請求URI。

對於Rails 3.2或Rails 4+

您應該使用request.original_url來獲取當前URL。

http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-original_url中記錄了此方法,但是如果您感到好奇,可以使用以下方法:

 def original_url base_url + original_fullpath end 

對於Rails 3:

您可以編寫"#{request.protocol}#{request.host_with_port}#{request.fullpath}" ,因為request.url現在已棄用。

編輯(20-11-2015)

由於您似乎需要特定的url段,因此您可以通過簡單地調用original_url.split('/')[2]輕松地用ruby模仿JS實現。

如您所見,您可以輕松地使用https://github.com/sstephenson/execjs進行操作

require "execjs"
ExecJS.eval "'red yellow blue'.split(' ')"

您可以輕松獲得返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM