将javascript值插入erb代码中

时间:2011-02-20 14:41:07

标签: javascript ruby-on-rails maps erb

我有一个带有以下代码的js.erb模板:

var latlng = new google.maps.LatLng(<%= session[:lat] %>, <%= session[:lng] %>);

我现在正试图做相反的事情(将javascript插入ruby):

<% session[:lat] = javascript_tag("document.write(location.lat());") %>

2 个答案:

答案 0 :(得分:2)

我认为你错过了Javascript的观点。

Ruby代码(示例中的<% .. %>部分)在服务器上运行。

Javascript代码(var latlng = new google.maps.LatLng(10, 20);document.write(location.lat());)在浏览器中执行 它还在 ruby​​代码之后执行,当服务器已经处理了请求并生成了结果页面时。

如果您想知道服务器上location.lat()的值,您必须在AJAX请求中将其从浏览器发送到服务器。任何流行的Javascript库都会对此有所帮助。

答案 1 :(得分:0)

也许你可以尝试<%= raw [ruby/rails code] %>
此链接可能有所帮助:http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/a160d9c2e55cfe36