2

websocket から呼び出された 1 つのスクリプトに取り組んでいます。このコードのページは html.erb のものです

変数をjavascriptに渡し、そのjavascript変数からruby変数に割り当てたい、

ここにコードがあります

function set_color(val1,val2)
{

  <%background_color_id = %>
  var obj_color_id = '<%=background_color_id ='+val2+'%>' ;
  console.log(obj_color_id)
 }

コンソールログの結果は+val2+

私が通ればvar obj_color_id = '<%=background_color_id ='val2'%>' ;

コンソールログの結果はval2

javascript変数をruby変数に割り当てるのを手伝ってください

4

3 に答える 3

3

これはできません。Javascript はクライアント側で実行され、Ruby はサーバー側で実行されます。

于 2012-08-22T06:23:49.837 に答える
1

そんなことはできません。すべての値<%=はサーバー側で変換され、その値がクライアントに送信されます。クライアント側にルビはありません。サーバーにデータを渡すには、websocket または http サーバーにリクエストを送信する必要があります。

于 2012-08-22T06:25:04.520 に答える
0

実際、私があなたのコードを理解している場合(残念ながら、あなたの質問はうまく表現されていません)、簡単な解決策は次のとおりです。

1-サーバー側のコードを介して値を割り当てます。

function set_color(val1,val2)
{
  var bkgdColorId = "<%= background_color_id %>";
  var obj_color_id = bkgdColorId;
  console.log(obj_color_id)
}

2-(または、)クライアント側のコードから値を割り当てます。

function set_color(val1,val2)
{
  /** pseudo-code **/
  on-click-event: makeAjaxCallToServer(){
    urlForWebService, { color: val2 }
  }
}

jQueryを使用すると(クライアント側のイベントからサーバーに割り当てる場合)、このプロセスが大幅に容易になります。

于 2012-08-22T06:33:45.953 に答える