2012-03-13 15 views
4

を受け入れ、私は私の選択ドロップダウンについては、以下を使用していたことをリモートAJAX呼び出しを無視:Railsのselect_tagは私のフォームヘルパーの作業を取得する前

<%= select_tag :city_id, 
     options_for_select(City.all.collect{|c| [c.name,c.id]}), 
     :data => { :remote => true, 
        :url => url_for(:controller => "locations", 
            :action => "filter_by_city") 
       } 
%> 

と、これは私のfilter_by_city.js.erbを呼び出すために完全に働いたとし、いくつかの他の値を更新します。ファイヤーバグを調べると、データリモートなどのプロパティがあることがわかります。

しかし、以下のform_forヘルパーに変更すると、データリモートはなく、したがってAJAX呼び出しはありません。

<%= f.collection_select(:city_id, 
     City.all, :id, :name, 
     :data => { :remote => true, 
        :url => url_for(:controller => "locations", 
            :action => "filter_by_city") 
       } 
    ) 
%> 

ドロップダウンは正確に前と同じように表示されます(そして、それはそれを得るためにパラメータを指定して、いくつかのmuddlingを取った)、それはparamsは値を設定する以外の機能はありません。それは治療法はなかったが、フランスのフォーラムhereからと({}内のデータ

私はそれが初心者の間違いだが、任意のヘルプは、それが最も理解されるであろう見つけることを前提と

私はラッピングを試してみました。

おかげ

答えて

7

::ルはため息::

をcollection_selectを使用する場合は、RoRののいくつかの部分とは違って、ために、すべての引数を含めるように少しうるさいですようです。でも、私ができる(と継続)ものの残すためにアウト:ポスト、solutiオプションに空のセットが含まれていることがわかりました。また、html_optionsのデータは{}で囲みます。

だから、これはどのような作品です:

<%= f.collection_select(:city_id, 
     City.all, :id, :name, {}, 
     {:data => { :remote => true, 
        :url => url_for(:controller => "locations", 
            :action => "filter_by_city") 
       } 
     } 
    ) 
%> 

注{}の後に名前と{次の行を開始します。

テイクアウトメッセージ - オプションはhtml_optionsを含む場合はOPTIONALではありません。

関連する問題