将变量从Javascript传递到Ruby on Rails

时间:2013-09-27 17:50:50

标签: javascript ruby-on-rails ruby variables

在rails中你可以这样做:

<% name = @user.name %>
<script>
    var name = <%= name%>;
    alert(name);
    //prints the name of the user
</script>

您可以反向执行此操作,例如

<% name = @user.name %>
<script>
    var name = "John";
    <% name %> = name;
</script>

<% @user.name = name %>

<%= name %>
<!-- prints the name of the user, in this case "John" -->

显然这不起作用,但出于示例的目的

关键是,你能否将javascript变量的值传递给rails

中的ruby变量

1 个答案:

答案 0 :(得分:5)

不,你不能直接从javascript传递变量到rails:

  • Ruby on Rails '代码在服务器端上执行,以生成页面(包含HTML,CSS和Javascript)。
  • Javascript 的代码在浏览器的客户端上执行。

与客户沟通的唯一方式 - &gt;服务器是使用请求。您可以使用AJAX (异步Javascript和XML)从客户端向服务器发送请求,而无需重新加载页面。


您必须了解有关服务器/客户端代码的一些概念。 “从网站显示页面”的过程:

  • 客户端 -side)用户向服务器发送HTTP请求以发送页面,发送页面位置,例如:http://myapp.com/users
  • 服务器 -side)服务器获取请求,在定义的路由后找到正确的控制器/操作
  • 服务器 -side)服务器以HTML / CSS / Javascript格式生成页面以发回给用户。它通过视图和&amp ;;生成HTML。 partials,执行这些页面的ruby代码。
  • 服务器 -side)呈现页面后(完全生成HTML / CSS / Javascript),服务器发送HTTP响应
  • 客户端 -side)客户端的浏览器接收服务器的响应,由HTML / CSS / javascript(主要是)组成。浏览器呈现HTML / CSS,并执行javascript。