2010-11-29 5 views
4

多くの検索と読み込みの後、私はレール2.1.2 collection_selectと:onchangeとa:with

<%= collection_select :selection, :level, User::LEVELS, :to_s, :to_s,{:with => "this.value"}, 
     {:onchange => remote_function(
      :url => {:action => "updatelevel", :controller => "user", :id=> user.id}) 
     } %> 

のように見えるcollection_selectを持っていますが、選択した値をコントローラーに渡していないので、私が今まで持っていた唯一のものはゼロです。

私はどこの違いの組み合わせについて混乱しました:とする必要がありますし、テスト文字列を試してみましたが、それは何もしないようです。

私は何か愚かな行方不明ですか?私が見なければならない "決定的な"例はありますか?

Railsは非常に速く変わっているようだが、フォーラム投稿のバージョンとcollection_selectで読んだAPIは、オプションのハッシュに何を入れることができないのか分かりにくい。

答えて

5

Rails 2.3.10を実行しているアプリでこれをチェックしました。間違った場所に 'with'パラメータがあります。これは、コレクションの選択ではなく、リモート関数のオプションです。また、そのように値を渡すと、{"134523456" => ""}のようなparamsハッシュが得られます。これはおそらくあなたが望むものではありません。 JavaScript中心の文字列に 'with'値の結果を持たなければなりません。

<%= collection_select :selection, :level, User::LEVELS, :to_s, :to_s, {}, 
     {:onchange => remote_function(
     :url => {:action => "updatelevel", :controller => "user", :id=> user.id}, 
     :with => "'level_id='+this.value" 
    ) 
    } 
%> 
関連する問題