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を介して値をポストバックする必要があります。

特定の例では、アンカータグを選択し、message変数の内容をアンカータグのクエリ文字列に追加するJavaScriptを作成する必要があります。次のようなもの:

<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 に答える