0

私は次の見解を持っています:

index.html.js
<h5>Select your state:</h5>
<%= select_tag "state", options_for_select(@states.collect{|x| x[0]}), :onchange => '$.get("/home/populate_options")' %>

@statesは、次のような状態の省略形の配列です。

@states
  [
    ['AK', 'AK'],
    ['AL', 'AL'],
    . . .
  ]

選択した状態値を含むパラメーター(Alaskaが選択されている場合は、「AK」をコントローラーアクションに送信する必要があります)をajax経由でコントローラーアクションに渡すにはどうすればよいですか?

送信する前に、JavaScript内にURLを手動で作成して、$.get("/home/populate_options")より似たものにする必要があり$.get("/home/populate_options/AK")ますか?たぶん、ヘルパーの使用方法を変更して、実際に「レールのような」ヘルパーを使用し、シンボル:state => "AK"を使用してパラメーターを送信できるようにする必要がありますか?

4

1 に答える 1

1

これを試して:

あなたが@states = [['AK','AK'],['AL','AL']]このようになったら。collect使用する必要はありません@states

また、パラメータで値を送信するにonchangeは、次のように実行できます。

  <%= select_tag "state", options_for_select(@states), :onchange => '$.get("/home/populate_options?state="+$(this).val())' %>

しかし、あなたの質問では、正確にどこからデータを入力しているのかは明確ではありませんajax

于 2013-03-27T14:14:24.240 に答える