2012-04-09 7 views
10

simple_form 2.0のgrouped_select機能については、http://simple-form.plataformatec.com.br/#usage/collectionsに少ししか書かれていないようです。ドキュメントには次の行があります。optgroupの作成Rails 3.2でs​​imple_form gemを使用

f.input :country_id, :collection => @continents, :as => :grouped_select, :group_method => :countries 

しかし、それは私にそれを動作させるのに十分なコンテキストを与えているようには見えません。ここに私が持っているものがあります。

私は三つのモデルがあります:このドロップダウンは、照会ビュー用ですお問い合わせ、広告、および挿入

広告にhas_manyの挿入、および挿入belongs_toの広告 挿入belongs_toのお問い合わせ、および挿入has_manyのお問い合わせ

を。 simple_formを使用すると、少なくとも= f.input :insertion, :collection => @adsにドロップダウンの広告タイトルのリストを出力できます。私はad.titleをオプトグループとして提供したいと思います。それから私は、選択可能なコンテンツとして機能するように広告を挿入をしたいのですが...そうのようなもの:

<select> 
    <optgroup label="Ad.Title"> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    </optgroup> 
    <optgroup label="Ad.Title"> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    </optgroup> 
</select> 

は、誰もがこのsimple_form機能を機能させる上の任意のアドバイスを提供することはできますか?私は本当にそれを感謝します!

このプロパティの実行方法についての洞察があれば、アプリについて他に何かを教えてください。

ありがとうございます!

UPDATE:私は部分的に使用して働いて何かを得ることができました:

= f.input(:insertion_id, :collection => Ad.order(:name), :as => :grouped_select, :group_method => :insertions) 

これに伴う問題は、私が言うことができるものから表示テキストとして使用されているものの列を指定する方法がないということです。入力を歓迎します。

答えて

20

追加の調査の後、ドキュメントをよく見て、構文を試して、私が探していたものを解決しました。このようになりますgrouped_collection_select

標準のRails:私はそれが将来的に他の人々を支援を期待

= f.input(:insertion_id, :collection => Ad.order(:name), 
         :as => :grouped_select, 
         :group_method => :insertions, 
         :group_label_method => :name, 
         :label_method => :title, 
         :include_blank => "Please Choose...") 

= f.grouped_collection_select(:insertion_id, Ad.order(:name), 
           :insertions, :name, :id, :title, 
           include_blank: "Please Choose...") 

これは、次の構文でsimple_form 2.0を使用してやり直すことができます。

+0

は私のお尻を救いました。ありがとう! :D –

0

別の方法は次のとおりです。

<%= f.input :product_category do %> 
    <%= f.select :product_category, grouped_options_for_select(Product.PRODUCT_CATEGORY), include_blank: true %> 
    <% end %> 

あなたがアクティブレコードモーダルを使用せずに選択OPTGROUPを形成しようとしているとき、これはうまく動作します。

参考: https://github.com/plataformatec/simple_form#wrapping-rails-form-helpershttp://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-option_groups_from_collection_for_select

関連する問題