有没有办法在Rails视图中访问JavaScript变量?我刚刚设置了一些JavaScript变量的值,想在Rails视图中访问它。谢谢。
您需要明白,视图中的 Ruby 代码会在服务器上执行 - 在页面上任何 JavaScript 得到执行之前。
这就是为什么您不能像这样做:
<script>
var js_var = 1;
</script>
<%= get_value_of_js_var_somehow %>
<script>
var js_var = <% generate_value_with_ruby %>;
do_something_in_javascript_with_js_var();
</script>
<script>
var id = 1;
<%= remote_function :url => {:controller=>'controller_name', :action=>'method_name'}, :with => "'user_id=' + id" %>
</script>
您将通过POST请求作为参数接收变量。您可以使用params[:user_id]
访问它。
def method_name
if params[:user_id].exists?
u = User.where('id = ?', params[:user_id]).first
end
puts u.path
end
如果你在 JavaScript 的高级代码(例如:application.js)中有这个变量,那么你可以在视图中直接引用它。
#application.js
var someVar = "Hello World";
然后在您的视图中(在客户端上执行),您可以...
<script type='text/javascript'>
alert(someVar);
</script>
如果这三篇文章中没有回答你的问题,我认为我们需要更具体的阐述。
<script type="text/javascript">
var a="some value";
document.getElementById('tagid').innerHTML='<%= tag(:div,content_tag(:p,' " +a+ " '), :id=>' " +a+ " ', name=>"somename") %>';
</script>