1

我正在使用 rails 3.2.6 版,我正在尝试将 Javascript 变量传递到另一个页面“Test10”。我在视图中有以下代码:

<script>
var message = "hello world!";
</script>

<%= link_to "Go!", Test10_path(), :with => "'message='+ message"  %>

该参数未传递给 Test10。我在 Test10 控制器中有以下内容:

def Test10
  @hello = params[message]
end

这是将Javascript变量传递给我的rails控制器的正确方法吗?它不工作。我会很感激任何指示。谢谢!

4

2 回答 2

5
<%= link_to "Go!", Test10_path(), :id => "my_link"  %>


<script>
    var message = 'test';
    var url = $('#my_link').attr('href') + '?message=' + message;
    $('#my_link').attr('href', url);
</script>

像这样的东西应该工作。虽然大多数时候,最好使用表单来传递参数......

于 2012-08-01T19:52:54.013 回答
0

你不能这样做。JavaScript 和 Ruby 代码在完全不同的上下文中执行,JavaScript 在客户端,Ruby 在服务器上。

通常,如果您想将值从客户端传递到服务器,您需要通过将其以表单或作为查询字符串的一部分或通过 AJAX 将其发回。

在您的特定示例中,您必须编写一些 JavaScript 来选择锚标记并将message变量的内容附加到锚标记的查询字符串。类似于以下内容:

<script>
  var message = "hello world!";

  // Select your anchor tag
  var link = $('a#my-link');

  // Append your message to the link's href attribute
  link.attr('href', link.attr('href') + "?message=" + message);
</script>
于 2012-08-01T19:48:23.153 回答