[英]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
现在已弃用。
由于您似乎需要特定的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.