繁体   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