【问题标题】:Passing variable from Javascript to Ruby on Rails将变量从 Javascript 传递到 Ruby on Rails
【发布时间】:2013-10-04 02:57:30
【问题描述】:

在 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变量吗

【问题讨论】:

    标签: javascript ruby-on-rails ruby variables


    【解决方案1】:

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

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

    与客户端 -> 服务器通信的唯一方法是使用请求。您可以使用 AJAX(异步 Javascript 和 XML)将请求从客户端发送到服务器,而无需重新加载页面。


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

    • (Client-side) 用户向服务器发送一个页面的HTTP请求,发送页面的位置,例如:http://myapp.com/users
    • 服务器-side)服务器收到请求,按照定义的路由找到合适的控制器/动作
    • (Server-side) 服务器以 HTML/CSS/Javascript 生成页面发送回给用户。它通过视图和部分生成 HTML,执行这些页面的 ruby​​ 代码。
    • 服务器-side)一旦页面被渲染,服务器就会发送带有 HTML/CSS/Javascript 正文的 HTTP 响应。
    • (Client-side) 客户端的浏览器接收服务器的响应并读取由HTML/CSS/Javascript(大部分)组成的body。浏览器解析并呈现 HTML/CSS,并执行 javascript。

    【讨论】:

      猜你喜欢
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多